Java/Notion

· Java/Notion
중복 허용 안함, 순서 없음 중복을 허용하지 않기 위해 객체 저장 전에 기존에 같은 객체가 있는지 확인 Set 인터페이스를 구현한 대표적인 컬렉션 클래스 순서를 유지하려면 LinkedHashSet을 사용해야 함 Set을 정렬하려면 List로 바꾼 뒤에 가능 생성자 HashSet(); HashSet(Collection c); HashSet(int initialCapacity); HashSet(int initialCapacity, float loadFactor); 메소드 add(), addAll() 객체 추가 및 합집합 remove(), removeAll() 객체 삭제 및 교집합 retainAll() 조건부 삭제(차집합) contains(), containsAll() 포함되는 것만 남김 clear() 전체 ..
· Java/Notion
객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스 오버라이딩하여 자신에 맞게 정렬 기준을 정의할 수 있음 Comparator 기본 정렬기준을 구현할 때 사용 ( 두 객체를 비교 ) = compare() Comparable 기본 정렬기준 외에 다른 기준으로 정렬할 때 사용 ( 자기 자신과 객체를 비교 ) = compareTo()
· Java/Notion
자바에서 배열을 다루기 편리한 메서드를 제공해주는 클래스 메소드 toString() 배열을 문자열로 출력해줌 copyOf(원본배열, 복사할 개수), copyOfRange(원본배열, 시작 인덱스, 끝 인덱스) 배열의 복사하여 새로운 배열을 생성해서 반환 넘치는 범위는 타입의 기본값으로 채움 fill() 배열을 지정한 요소로 채움 setAll() 배열을 지정한 람다식으로 채움 sort() 배열을 오름차순(0,1,2,...99)으로 정렬 binarySearch() 정렬이 되어있지 않으면 잘못된 결과가 나오기 때문에 정렬이 되어있는 경우에만 사용 deepToString() 다차원 배열을 문자열로 출력해줌 deepEquals() 다차원 배열을 비교하는 경우 asList(배열) 배열을 List(읽기전용)로 변환
· Java/Notion
컬렉션에 저장된 데이터를 접근할 때 사용되는 인터페이스 Enumeration은 Iterator의 구버전 ListIterator는 Iterator의 단반향적인 접근성을 양방향으로 향상시킨 인터페이스 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것 Iterator를 가장 많이 사용함 메소드 hasNext() 읽어 올 요소가 남아있는지 확인 next() 다음 요소를 읽어 옴 remove() next()로 읽어 온 요소를 삭제 forEachRemaining 컬렉션에 남아있는 요소들에 대해 지정된 작업을 수행하며 람다식을 사용하는 디폴트 메서드 Iterator List list = new ArrayList(); Iterator it = list.iterator(); // 리스트를 모두 출력하는 경우 whil..
· Java/Notion
Stack LIFO(Last In First Out, 후입선출) 구조로 마지막에 저장(push)된 것을 가장 먼저 추출(pop) 순차적으로 추가하고 삭제하기 때문에 ArrayList로 구현하는 것이 좋음 단방향 입출력 데이터는 하나씩만 넣고 빼는 것이 가능 Stack 참조변수명 = new Stack(); 장점 스택에 저장된 데이터를 가져오는 속도가 매우 빠름 자바에서 기본적으로 스택 클래스를 제공 단점 크기의 제한이 없으므로 불필요한 메모리 사용량 증가가 발생할 수 있음 Vector 클래스를 상속 받아 구현되어 크기를 동적으로 조정하지 않음 자바에서의 스택 클래스는 다른 언어의 스택과는 다르게 Vector 클래스를 상속 받아 중간에서 데이터를 삽입 및 삭제가능 Stack의 메소드 empty() Stack..
· Java/Notion
배열은 구조가 간단하고 연속적인 데이터를 읽는데 걸리는 시간이 짧음 하지만 크기를 변경할 수 없음 또한 비순차적인 데이터의 추가나 삭제에 시간이 많이 걸림 LinkedList 배열의 단점을 보완하기 위해 생김 불연속적으로 존재하는 데이터를 연결 다음 요소를 가리키는 노드를 가지고 있는 구조 변경에 유리함 데이터를 삭제하는 경우 삭제하는 요소의 연결을 끊고 다음 요소랑 연결만 하면 가능 즉, 단 한 번의 참조변경만으로 삭제가 가능 리스트 중간의 요소(비순차적)를 추가하거나 삭제 하는 경우에만 ArrayList보다 좋음 메모리 사용은 ArrayList보다 효율적이지만 데이터가 많을수록 접근성이 떨어짐 Linked List (연결 리스트) 데이터의 수정은 빠르지만 불연속적이라 데이터 접근성이 나쁨 Doubly..
· Java/Notion
기존의 Vector를 개선한 것 자체적으로 동기화 처리가 되지 않음 Vector는 자체적으로 동기화 처리가 됨 저장순서가 유지되고 중복을 허용 데이터의 저장공간으로 배열 사용 생성자 ArrayList() // 기본 ArrayList(Collection c) // 컬렉션의 길이와 같음 ArrayList(int initialCapacity) // 배열의 길이 직접 지정 메소드 add(Object), add(index, Object) 맨 뒤 혹은 지정 인덱스에 요소를 추가 기존 요소들은 한 칸씩 밀림 addAll(Collection), addAll(index, Collection) 맨 뒤 혹은 지정 인덱스에 객체들을 추가 remove(Object), remove(index) 지정 객체나 인덱스의 객체를 제거 ..
· Java/Notion
HashMap TreeMap LinkedHashMap (순서가 필요한 경우 사용하는 HashMap) SortedMap Hashtable 메소드 clear() Map의 모든 객체 삭제 containsKey(key), containsValue(value) 지정 객체의 키나 값과 일치하는 Map의 키나 값이 있는지 확인 entrySet() Map에 저장된 키-값의 쌍을 Map.Entry 타입의 객체로 저장한 Set으로 반환 get(key) 지정 객체의 키에 대응하는 값 객체를 찾아서 반환 put(key, value) Map에 값 객체를 키 객체에 연결하여 저장 putAll(Map) 지정된 Map의 모든 키-값 쌍을 추가 remove(key) 지정한 키 객체와 일치하는 키-값 객체를 삭제 size() Map에 ..
da9dac
'Java/Notion' 카테고리의 글 목록 (3 Page)