>  기사  >  Java  >  Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?

Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?

WBOY
WBOY앞으로
2023-05-28 15:58:571641검색

    1. 컬렉션 프레임워크란 무엇인가요?

    Java에는 프로그래머가 직접 사용할 수 있도록 시퀀스 목록, 연결 목록, 큐, 스택, 우선 순위 큐, 해시 테이블 등과 같은 기성 데이터 구조 세트가 해당 인터페이스/클래스로 캡슐화되어 있습니다. . 내부 구조를 구현할 필요 없이 관련 객체를 생성하고 사용할 수 있습니다.

    컬렉션은 여러 요소를 저장하고 관리하는 데이터 구조로, 이러한 요소는 단일 단위로 배치되며 추가, 삭제, 수정, 쿼리 등의 작업을 통해 처리될 수 있습니다. 예를 들어, 플레잉 카드 세트(카드의 모음), 주소록(이름과 전화번호 간의 매핑 관계 세트) 등을 예로 들 수 있다.

    아래 사진이 아주 중요해요! ! ! 일반적으로 사용되는 인터페이스와 클래스를 기억해야 합니다! !

    Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?

    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() 메소드를 호출하여 맵의 각 키-값 쌍을 Map.Entry 수신을 사용하므로 반복자 또는 for-each()를 사용하여 순회할 수 있으며 각 항목 개체에는 키 값과 값 값을 각각 가져오는 getKey() 및 getValue() 메서드가 있습니다.

    기본 관계(간단 버전)

    Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?

    2. Collection 인터페이스

    일반적으로 Collection 인터페이스를 구현하는 인터페이스나 클래스는 위 그림에서 볼 수 있듯이 특정 구현 클래스의 객체를 받아들이는 데 사용됩니다. , Collection 인터페이스는 일련의 인터페이스이며 클래스의 상위 인터페이스에는 내부적으로 구현된 메소드가 상대적으로 적으므로 하위 클래스의 일부 공통 메소드를 호출할 수 없습니다.

    1. 제네릭을 통해 해당 컬렉션에 개체 유형을 지정합니다.

    참고: 여기에 전달된 유형은 참조 유형만 될 수 있습니다. 기본 데이터 유형인 경우 래퍼 클래스로 지정해야 합니다

    		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

    2 . 컬렉션은

    메서드를 사용하는 일반적인 방법 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. 지도 인터페이스Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?

    여기서 키 값은 고유하며 각 키 값은 해당 값에 해당합니다. 서로 다른 키 값이 동일한 값에 해당할 수 있습니다. HashMap: 요소를 저장할 때 해당 키 값을 기준으로 내부 hashCode 함수를 호출하여 요소가 배치되어야 하는 위치를 찾습니다. 따라서 해시 테이블의 요소는 저장된 순서대로 저장되지 않습니다.

    Map 공통 메소드 사용

    method

    functionV get(Object k)지정된 kV getOrDefault(Object k, V defaultValue)에 따라 해당 v를 찾습니다. ) 지정된 k에 따라 해당 v를 찾고, 찾지 못하면 기본값을 반환V put(K 키, V 값)지정된 k-v를 Map에 넣습니다boolean containKey( 객체 키)키 포함 여부 판단boolean containValue(객체 값)값 포함 여부 확인Set>entrySet()모두 반환 키-값 쌍 boolean isEmpty()비어 있는지 판단하세요int size()키-값 쌍의 개수를 반환
    		HashMap<Integer, String> map = new HashMap<>();
    
            // put()
            map.put(1,"张飞");// 这里的 key 值唯一
            map.put(1,"宋江");// 如果二次插入的 key 值之前有,则替换其 value值
            map.put(2,"Jack");
            System.out.println(map);
    
            // get()
            String s1 = map.get(1);// 返回 宋江
            String s3 = map.getOrDefault(3,"三团");// 未找到,返回 三团
    
            // entrySet()
            // 该方法返回一个 Set<Map.Entry<Integer, String>> 对象
            Set<Map.Entry<Integer, String>> entries = map.entrySet();
            for (Map.Entry<Integer, String> entry : entries) {
                // 通过 entry.getKey() 和 entry.getValue() 获取每个entry对应的 k, v值
                System.out.println(entry.getKey() + " " + entry.getValue());
            }

    Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?

    4、具体的实现类

    Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?

    위 내용은 Java 컬렉션 프레임워크의 데이터 구조는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제