java 집합 프레임워크 상세

8356 단어 java집합 프레임
1.java 컬렉션 프레임워크 개요
자바 SE는 하나의 클래스와 인터페이스로 구성된 자바 집합 프레임워크(java Collection Framework, 약칭 JCF)를 포함하는데 그 주요 기능은 저장된 데이터를 특정한 구조로 조직하고 특정한 방식으로 이 데이터에 접근하는 것이다. 그 목표는 처리 대상 집합의 일반적인 프레임워크를 제공하여 프로그래머가 서로 다른 대상 집합을 처리할 때의 인코딩량을 줄이는 것이다. 
집합 클래스의 일부 차이점은 중복 요소 동작을 지원하는지 여부뿐만 아니라, 요소가 순서가 있는지, 그리고 null 요소를 추가할 수 있는지도 포함한다.자바 집합 프레임워크에서 이 세 가지 차이에 따라 대상의 저장 방식을 세 가지 유형으로 나눈다. 각각 다음과 같다.
  • Set(집합): 객체 컨테이너에 있는 객체는 순서가 없으며 반복할 수 없습니다. 
  • List(목록): 객체 컨테이너의 객체는 색인 순서대로 정렬되며 중복된 객체가 있을 수 있습니다. 
  • 맵(매핑): 객체 컨테이너의 요소는 키 객체 - 값 객체 쌍의 매핑을 포함하며 키 객체는 중복될 수 없으며 값 객체는 중복될 수 있습니다
  • 지원 대상의 정렬과 접근 동작을 위해 자바 집합 프레임워크에 몇 개의 인터페이스를 제공합니다.
  • 인터페이스 SortedSet은 Set 유형 용기에 촬영 기능을 제공합니다.  
  • 인터페이스 SortedMap은 맵 유형 용기에 키 대상에 대한 정렬을 제공합니다. 
  • 인터페이스 Comparable와comparator는 집합 중의 대상의 정렬을 실현하는 데 사용된다. 
  • 2. Collection 및 Iterator 인터페이스
    Collection 인터페이스에서 Collection 객체의 공통된 기본 방법을 정의합니다.
    방법
    묘사
    int size()
    현재 집합에 포함된 요소 개수를 되돌려줍니다.
    isEmpyt()
    집합에 원소가 함유되어 있는지 판단하다
    boolean contains(Objact o)
    집합에 특정한 원소가 함유되어 있는지 판단하다
    add(Objact o)
    컬렉션에 요소 추가
    remove(Objact o)
    컬렉션에서 요소 제거
    Iterator iterator()
    컬렉션의 각 요소에 접근하기 위해 역행기를 되돌려줍니다.
    Iterator 인터페이스는 컬렉션을 반복하는 데 사용되는 인터페이스입니다.
    Iterator 인터페이스의 방법
    방법
    묘사
    hasNext()
    만약 집합에 더 많은 요소가 있다면, 이 방법은true로 되돌아갑니다
    next()
    집합의 다음 요소 되돌리기
    remove()
    Iterator가 반환하는 마지막 요소 삭제
    1. List 커넥터
    List 인터페이스는 Collection 인터페이스에서 상속되며 다음과 같은 특징이 있습니다.
  • List의 요소는 순서가 있습니다. 
  • List는 일반적으로 반복 요소를 허용합니다. 
  • List의 실현 클래스는 일반적으로null 요소를 지원합니다. 
  • 색인을 통해 List 객체 컨테이너의 요소에 액세스할 수 있습니다.    
  • List 인터페이스에서 가장 자주 사용하는 실현 클래스는 ArrayList 클래스와 LinkedList 클래스입니다.
    1).ArrayList 
    프로그램 인스턴스:
    
    package lei;
      import java.util.ArrayList;
      import java.util.List;
      public class Test {
        public static void main(String[] args) {     
          List list = new ArrayList<>();
          list.add(1);
          list.add("zhangsan");
          list.add(false);
          list.add('a');
          list.add(0, "lisi");
          list.add(1);
          list.remove(1);
          list.remove(2);
          list.set(0, "wangwu");
          for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
          }
        }
      }
    Object 클래스가 정의한 equals () 방법은 이 방법에 전달된 대상과 이 방법을 호출한 대상이 같은 대상일 때true로 되돌아옵니다.equals () 를 다시 쓰는 방법을 통해 같은 상태를 가진 두 대상을 같은 대상으로 간주할 수 있다.
    2).LinkedList 
    방법
    묘사
    void addFirst
    체인 테이블 시작 부분에 객체 추가
    void addLast
    체인 테이블 끝에 객체 추가
    getFirst()
    체인 테이블의 첫 번째 요소 되돌리기
    getLast()
    체인 테이블의 마지막 요소 되돌리기
    removeFirst()
    체인 테이블의 첫 번째 요소 삭제
    removeLast()
    체인 테이블의 마지막 요소 삭제
    프로그램 인스턴스:
    
    package lei;
      import java.util.LinkedList;
      import java.util.List;
      public class Test2 {
          public static void main(String[] args) {
           LinkedList l=new LinkedList<>();
          l.add("zhangsan");
          l.add("lisi");
          l.addFirst(1);
          l.addLast(4);
          System.out.println(l.getFirst());
          System.out.println(l.getLast());
          l.removeFirst();
          l.removeLast();
          for (int i = 0; i < l.size(); i++) {
            System.out.println(l.get(i));  
          }  
        }
      }
    LinkedList 및 ArrayList 선택
    만약 목록에 빠른 접근이 필요하지만 요소의 삽입과 삭제 작업을 자주 하지 않는다면 ArrayList를 선택하는 것이 좋습니다.하면, 만약, 만약...목록을 자주 삽입하고 삭제하려면 LinkedList를 선택해야 합니다.
    2.set 인터페이스
    set 인터페이스는 Collectiion 인터페이스에서 계승되며, Collection 인터페이스의 모든 방법을 계승합니다.set 인터페이스는 다음과 같은 특징을 가지고 있다.
  • Set 유형 컨테이너에는 중복 요소가 포함될 수 없습니다.하나의 요소를 용기에 추가할 때 요소의 내용이 중복되었는지 비교해야 하기 때문에 Set 형식의 대상 용기를 넣은 대상은 equals () 방법을 다시 써야 합니다. 
  • 원소는 순서가 있을 수도 있고 순서가 없을 수도 있다. 
  • 원소가 순서가 없을 수 있기 때문에 아래 표에 근거하여 Set 중비 원소에 접근할 수 없습니다. 
  • Set 인터페이스를 실현하는 데 가장 자주 사용하는 것은 HashSet 클래스와 TreeSet 클래스이다.
    1).Hashset
    Hashset 클래스는 해시 알고리즘을 바탕으로 하는 Set 인터페이스로 이루어진 것으로 주로 다음과 같은 몇 가지 특징이 있다.
  • 해시셋을 두루 돌아다닐 때 그 중의 원소는 순서가 없다. 
  • Hashset에서는 중복 요소가 허용되지 않습니다.이 중복 요소는 같은 해시 코드가 있고 equals () 방법으로 비교할 때true의 두 대상을 되돌려줍니다. 
  • null 요소를 포함하도록 허용..
  • 만약에 우리가 작성한 클래스가 equals 방법을 재정의했다면, 이 클래스는hashCode () 방법을 재정의하고, 두 대상이 equals 방법으로 비교한 결과true일 때, 이 두 대상의hashCode () 방법의 반환값이 같음을 보증해야 한다. 
    프로그램 인스턴스:
    
    package lei;
      import java.util.HashSet;
      import java.util.Set;
      public class Test4 {
          public static void main(String[] args) {
          Set<String> set=new HashSet<String>();
          set.add("zhangsan");
          set.add("lisi");
          for(String s:set){
            System.out.println(s);
          }
        }
      }
    2).TreeSet
    TreeSet 클래스는 클래스 Set 인터페이스뿐만 아니라SortedSet 인터페이스도 실현하여 집합 중의 대상이 일정한 순서에 따라 정렬되는 것을 보장한다.TreeSet 컬렉션에 객체를 추가하면 순서가 지정된 객체 시퀀스에 삽입되지만 이러한 정렬은 객체가 추가된 순서에 따라 정렬되는 것이 아니라 일정한 알고리즘에 따라 정렬됩니다. 
    TreeSet은 요소의 자연 순서를 사용하여 요소를 정렬하거나 Set을 생성할 때 제공되는 Comparator에 따라 정렬합니다.TreeSet은 자연 정렬과 사용자 정의 정렬 두 가지 정렬 방식을 지원합니다.
    3. Map 인터페이스
    맵 인터페이스는 자바 집합 프레임워크에서 Collection 인터페이스와 다른 또 다른 중요한 인터페이스로 키(Key)에서 값(Value)까지의 대응 관계의 집합에 대응한다.맵 유형의 객체 컨테이너에는 두 개의 객체가 저장되어 있으며 한 객체는 맵의 키를 저장하고 다른 객체는 Value를 저장합니다.Key 및 Value는 모든 참조 유형의 데이터를 업그레이드할 수 있습니다.키는 반복할 수 없지만 Value는 반복할 수 있습니다.
    1).HashMap  
    HashMap은 해시 알고리즘을 기반으로 한 Map 인터페이스의 실현이다.HashMap은 키를 해시 테이블에 저장하여 유지보수합니다. 키는 유일합니다.단, HashMap은 키가 특정 순서로 배열되는 것을 보장하지 않으며, 특히 순서가 영원히 변하지 않는다는 것을 보장하지 않는다. 
    HashMap 클래스는 맵 인터페이스를 실현하여 맵 인터페이스의 모든 방법을 갖추고 있다.
    
    package day1228;
      import java.util.*;
      public class HashMapDemo {
        public static void main(String[] args) {
          //  HashMap
          Map<String, String> map = new HashMap<String, String>();
          map.put("a1", "xiao");
          map.put("b2", "xiaol");
          map.put("a4", "xiaosd");
          map.put("b1", "12a");
          map.put("a3", "1");
          //  iterator   
          System.out.println(" Map :");
          Set<String> keys = map.keySet();
          for (Iterator<String> i = keys.iterator(); i.hasNext();) {
            String key = i.next();
            String value = map.get(key);
            System.out.println(key + "=" + value);
          }
          //  "a4" 
          System.out.println("
    a4 "); map.remove("a4"); // // iterator System.out.println("
    Map :"); keys = map.keySet(); for (Iterator<String> i = keys.iterator(); i.hasNext();) { String key = i.next(); String value = map.get(key); System.out.println(key + "=" + value); } } }
    2).TreeMap
    TreeMap 클래스는 레드 블랙 트리 알고리즘을 기반으로 한 Map 인터페이스로 이루어집니다.TreeMap의 키 저장 방식은 TreeSet과 비슷합니다. 키를 트리에 저장하고 키의 순서는 자연 순서나 사용자 정의 순서 두 가지 방식으로 배열합니다. 
    프로그램 인스턴스:
    
    package day1228;
      import java.util.*;
      public class TreeMapDemo {
        public static void main(String[] args) {
          // TreeMap
          Map<Integer, String> map = new TreeMap<Integer, String>();
          map.put(1, "one");
          map.put(2, "two");
          map.put(3, "three");
          map.put(4, "four");
          map.put(5, "five");
          // iterator 
          System.out.println(" map :");
          Set<Integer> keys=map.keySet();
          for(Object key:keys){
            String value=map.get(key);
            System.out.println(key+"="+value);
          }
          // 3 
          System.out.println("
    3 "); map.remove(3); // iterator System.out.println("
    Map :"); for(Object key:keys){ String value=map.get(key); System.out.println(key+"="+value); } } }
    이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!

    좋은 웹페이지 즐겨찾기