자바 집합 ArrayList 구현 클래스 및 List 인터페이스 상용 방법 및 LinkedList 와 Vector 의 특징

자바 집합 ArrayList 구현 클래스 및 List 인터페이스 상용 방법
  • 1.집합 구조
  • 2.List 인터페이스 상세 설명
  • 3.List 실현 클래스 중 하나:ArrayList
  • 4.List 실현 클래스 의 2:LinkedList
  • 5.List 실현 클래스 의 3:Vector
  • 6.확장 ListIterator 인터페이스
  • 1.집합 구조
  • 컬 렉 션 인터페이스
  • List 인터페이스:질서 있 고 중복 가능 한 요 소 를 저장 합 니 다.
  • ArrayList(주요 실현 클래스),LinkedList,Vector
  • Set 인터페이스:무질서 하고 중복 되 지 않 는 요 소 를 저장 합 니 다.
  • HashSet、 LinkedHashSet、TreeSet


  • Map 인터페이스:"키-값"에 대한 데 이 터 를 저장 합 니 다.
  • HashMap(주요 실현 클래스),LinkedHashMap,TreeMap,HashTable(하위 클래스:Properties)

  • 2.List 인터페이스 상세 설명
  • 자바 의 배열 이 데 이 터 를 저장 하 는 한계
  • List 집합 류 에서 요소 가 질서 가 있 고 중복 이 가능 하 며 집합 중의 모든 요 소 는 해당 하 는 순서 색인 이 있 습 니 다.
  • List 용기 의 요 소 는 하나의 정수 형 번호 에 대응 하여 용기 에 있 는 위 치 를 기록 하고 번호 에 따라 용기 에 있 는 요 소 를 액세스 할 수 있 습 니 다.
  • JDK API 에서 List 인터페이스의 실현 류 는 ArrayList,LinkedList 와 Vector 가 자주 사용 합 니 다.
  • List 새로운 증가 방법 및 demo
  • public class TestList {
    	//ArrayList : List      
    	/*	List    Collection     
    	 * 	void add(int index, Object ele):        index    
    		boolean addAll(int index, Collection eles):       ,      
    		Object get(int index):         
    		Object remove(int index):           
    		Object set(int index, Object ele):           ele
    		int indexOf(Object obj):  obj           ,     -1;
    		int lastIndexOf(Object obj):  obj            ,     -1;
    		List subList(int fromIndex, int toIndex):   fromIndex toIndex    list,       			
    	 */
    	
    	@Test
    	public void testList1() {
    		List list = new ArrayList();
    		list.add(123);
    		list.add(456);
    		list.add(new String("aaa"));
    		list.add("gg");
    		System.out.println(list);//[123, 456, aaa, gg]
    		list.add(0, "IM");
    		System.out.println(list);//[IM, 123, 456, aaa, gg]
    		Object obj = list.get(1);
    		System.out.println(obj);//456
    		
    		list.remove(0);
    		System.out.println(list.get(0));//456
    		
    		list.set(0, 520);
    		System.out.println(list.get(0));//520
    			
    	}
    	
    	@Test
    	public void testList2() {
    		List list = new ArrayList();
    		list.add(123);
    		list.add(456);
    		list.add(new String("aaa"));
    		list.add("gg");
    		list.add(456);
    		System.out.println(list.indexOf(456));//1
    		System.out.println(list.lastIndexOf(456));//4
    		
    		System.out.println(list.indexOf(123) == list.lastIndexOf(123));//  true          123        
    		System.out.println(list.indexOf(4444));//-1
    		
    		List list1 = list.subList(0, 3);
    		System.out.println(list1);//[123, 456, aaa]
    	}
    	
    }
    
    
  • List 작업 데이터 에 자주 사용 되 는 방법:추가(add()삭제(remove)변경(set(int index,Object obj)검사(get(int index)삽입(add(int index,Object obj)길이(size())
  • 3.List 구현 클래스 중 하나:ArrayList
  • Array List 는 List 인터페이스의 전형 적 인 실현 클래스
  • 본질 적 으로 Array List 는 대상 이 인용 한 긴 배열
  • Array List 는 스 레 드 가 안전 하지 않 고 Vector 는 스 레 드 가 안전 합 니 다.List 집합 스 레 드 의 안전 을 위해 서도 Vector
  • 을 사용 하 는 것 을 추천 하지 않 습 니 다.
  • Arrays.asList(...)방법 으로 돌아 오 는 List 집합 은 ArrayList 인 스 턴 스 도 아니 고 Vector 인 스 턴 스 도 아 닙 니 다.Arrays.asList(...)반환 값 은 고정 길이 의 List 집합
  • 새로 추 가 된 방법 및 용법 은 위의 코드 를 참고 하면 됩 니 다.

  • 4.List 실현 클래스 의 2:LinkedList
  • 요 소 를 자주 삽입 하거나 삭제 하 는 작업 에 대해 서 는 LinkedList 류 를 사용 하 는 것 을 권장 합 니 다.효율 이 높 습 니 다
  • 새로 추 가 된 방법
  • /*
    void addFirst(Object obj): 0       obj
    void addLast(Object obj):         obj
    Object getFirst():       
    Object getLast():        
    Object removeFirst():       
    Object removeLast():        
    */
    

    5.List 구현 클래스 의 3:Vector
  • Vector 는 오래된 집합 으로 JDK 1.0 에 있 습 니 다.대부분의 작업 은 Array List 와 같 습 니 다.차이 점 은 Vector 가 스 레 드 가 안전 하 다 는 것 입 니 다.
  • 각종 list 에서 Array List 를 결 성 된 선택 으로 하 는 것 이 좋 습 니 다.삽입,삭제 가 잦 을 때 LinkedList 사용 하기;Vector 는 항상 ArrayList 보다 느 리 기 때문에 사용 을 피 합 니 다.
  • 새로 증가 하 는 방법:
  • /*
    void addElement(Object obj)
    void insertElementAt(Object obj,int index)
    void setElementAt(Object obj,int index)
    void removeElement(Object obj)
    void removeAllElements()
    */
    

    6.ListIterator 인터페이스 확장
  • List 는 listIterator()방법 을 추가 로 제공 합 니 다.이 방법 은 ListIterator 대상 을 되 돌려 줍 니 다.ListIterator 인 터 페 이 스 는 Iterator 인 터 페 이 스 를 계승 하여 List 를 전문 적 으로 조작 하 는 방법 을 제공 합 니 다.
  • /*
    void add():          (    )。
    boolean hasPrevious():         ,          ,    true。
    Object previous():         ,            ,    true(    ,   next              ,    true)。
    Boolean hasNext():         ,            ,    true(    ,   next              ,    true)。
    Object next():           。
    */
    
  • 위 에 역방향 으로 옮 겨 다 니 는 방법 이 있 습 니 다
  • 좋은 웹페이지 즐겨찾기