Java에는 프로그래머가 직접 사용할 수 있도록 시퀀스 목록, 연결 목록, 큐, 스택, 우선 순위 큐, 해시 테이블 등과 같은 기성 데이터 구조 세트가 해당 인터페이스/클래스로 캡슐화되어 있습니다. . 내부 구조를 구현할 필요 없이 관련 객체를 생성하고 사용할 수 있습니다.
컬렉션은 여러 요소를 저장하고 관리하는 데이터 구조로, 이러한 요소는 단일 단위로 배치되며 추가, 삭제, 수정, 쿼리 등의 작업을 통해 처리될 수 있습니다. 예를 들어, 플레잉 카드 세트(카드의 모음), 주소록(이름과 전화번호 간의 매핑 관계 세트) 등을 예로 들 수 있다.
아래 사진이 아주 중요해요! ! ! 일반적으로 사용되는 인터페이스와 클래스를 기억해야 합니다! !
맵 인터페이스는 Iterable 인터페이스를 구현하지 않기 때문에 맵 인터페이스의 요소를 어떻게 순회하나요?
Map<Integer,String> map = new HashMap(); map.put(1,"jack"); map.put(2,"tom"); Set<Map.Entry<Integer, String>> entries = map.entrySet(); // 使用迭代器进行遍历 ,增强 for同理 Iterator<Map.Entry<Integer, String>> iterator = entries.iterator(); while (iterator.hasNext()) { Map.Entry<Integer, String> entry = iterator.next(); System.out.println(entry.getKey() + " " + entry.getValue()); }
HashMap을 예로 들면, 해당 EntrySet() 메소드를 호출하여 맵의 각
기본 관계(간단 버전)
일반적으로 Collection 인터페이스를 구현하는 인터페이스나 클래스는 위 그림에서 볼 수 있듯이 특정 구현 클래스의 객체를 받아들이는 데 사용됩니다. , Collection 인터페이스는 일련의 인터페이스이며 클래스의 상위 인터페이스에는 내부적으로 구현된 메소드가 상대적으로 적으므로 하위 클래스의 일부 공통 메소드를 호출할 수 없습니다.
참고: 여기에 전달된 유형은 참조 유형만 될 수 있습니다. 기본 데이터 유형인 경우 래퍼 클래스로 지정해야 합니다
Collection<String> collection1 = new ArrayList(); collection1.add("haha"); collection1.add("world"); Collection<Integer> collection2 = new ArrayList(); collection2.add(1); collection2.add(2); //collection2.add("hh");// 这里会报错,不符合传入的指定类型Integer
Void Clear() | |
---|---|
Boolean ISEMPTY() | 집합에 요소가 없는지 확인 빈 컬렉션 |
boolean Remove(Object e) | 요소 e가 집합에 나타나면 그 중 하나를 제거합니다. |
boolean add(E e) | 요소 e를 집합에 넣습니다 |
int 크기 () | 컬렉션의 요소 수를 반환합니다 |
Object[] toArray() | 컬렉션의 모든 요소를 포함하는 배열을 반환합니다 |
참고: 마지막 Object[] toArray() 메서드 , 반환은 Object[] 유형의 배열입니다. 기본 방법은 컬렉션의 요소를 하나씩 꺼내서 Object 개체로 변환하고 반환할 배열에 저장한 다음 마지막으로 Object 유형의 배열을 반환하는 것입니다. []. String[] 배열로 변환할 때 유형 변환 예외가 발생합니다. |
배열의 모든 요소가 String으로 변환된다는 보장은 없지만 전체적으로 String[] 유형의 배열로 변환되므로 변환해야 하는 경우 트래버스를 수행해야 합니다. 반환된 결과를 먼저 변환하고 하나씩 String 유형으로 변환한 후 마지막으로 String[] 유형의 배열에 할당합니다. Java에서는 배열 유형을 전체적으로 변환하지 않는 것이 좋습니다.
Object[] objects = collection1.toArray(); String[] strings = new String[objects.length]; for (int i = 0; i < objects.length; i++) { strings[i] = (String)objects[i];// 一个一个转,但是没啥必要 }
3. 지도 인터페이스
여기서 키 값은 고유하며 각 키 값은 해당 값에 해당합니다. 서로 다른 키 값이 동일한 값에 해당할 수 있습니다. HashMap: 요소를 저장할 때 해당 키 값을 기준으로 내부 hashCode 함수를 호출하여 요소가 배치되어야 하는 위치를 찾습니다. 따라서 해시 테이블의 요소는 저장된 순서대로 저장되지 않습니다. Map 공통 메소드 사용V get(Object k) | |
---|---|
V getOrDefault(Object k, V defaultValue)에 따라 해당 v를 찾습니다. ) | 지정된 k에 따라 해당 v를 찾고, 찾지 못하면 기본값을 반환 |
V put(K 키, V 값) | 지정된 k-v를 Map에 넣습니다 |
boolean containKey( 객체 키) | 키 포함 여부 판단 |
boolean containValue(객체 값) | 값 포함 여부 확인 |
Set | 모두 반환 키-값 쌍 |
boolean isEmpty() | 비어 있는지 판단하세요 |
int size() | 키-값 쌍의 개수를 반환 |