ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day25_2 - JAVA (자바, Collection)
    KIC/JAVA 2021. 7. 19. 18:06
    반응형

     

     

    [배열의 단점]

    -> 저장할 수 있는 객체 수가 배열을 생성할때 정해야 하는 배열의 문제점

    -> 불특정 다수의 객체를 저장하기에 배열은 문제가 있다.

    -> 객체를 삭제했을 때 해당 인덱스가 비게 된다.

    -> 객체를 저장하려면 어디가 비었는지 확인해야 하는 불편함

     

     

     

     

     

    [컬렉션 프레임워크]

    컬렉션: 사전적 의미로 요소(객체)를 수집해 저장하는 것

     

    -> 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리

    -> java.util 패키지에 포함됨

    -> 인터페이스를 통해서 정형화된 다양한 컬렉션 클래스를 이용

     

     

     

     

     

    [List 컬렉션]

    -> 인덱스로 관리한다.

    -> 중복으로 객체 저장 가능

     

    [구현 클래스]

    ->ArrayList

    -> Vector

    -> LinkedList 등

     

     

     

     

     

    [List 컬렉션 주요 메서드]

    [ArrayList]

    -> 초기 용량: 10 (따로 지정 가능)

     

     

     

     

    [Vector]

    -> Vector는 스레드 동기화에 주로 사용

    -> 복수의 스레드가 동시에 Vector에 접근해 객체를 추가, 삭제하더라도 스레드에 안전

     

     

     

     

     

     

     

     

    [LinkedList]

     

     

     

    Set 컬렉션의 특징 및 주요 메서드

    특징

    -> 수학의 집합에 비유

    -> 저장 순서가 유지되지 않음

    -> 객체를 중복 저장 불가

    -> 하나의 null만 저장 가능

     

     

     

     

    [HashSet]

     

     

    [Map]

    map 주요 메소드

     

     

     

    [컬렉션 ArrayList ex]

    package javaPro.java_collection;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class ListEx1 {
        public static void main(String[] args) {
            List<Integer> list = new ArrayList<Integer>();
            list.add(1);
            list.add(2);
            list.add(5);
            list.add(4);
            list.add(0);
            list.add(0);
            System.out.println(list);
            for(int i = 0; i < list.size(); i++){
                System.out.println(i + ":" + list.get(i));
            }
            //list.subLine(1,4) : list 객체의 1번 인덱스부터 3번 인덱스까지 부분 리스트로 리턴
            List<Integer> list2 = new ArrayList<Integer>(list.subList(1,4));
            System.out.println(list2);
            //list2를 정렬
            //Collections : Collection 프레임워크에 관련된 추가 기능을 멤버로 가진 클래스
            Collections.sort(list2);//list2 list 객체를 정렬
    
            System.out.println(list2);
        }
    
    
    }

     

     

     

     

    [컬렉션 Vector ex]

    package javaPro.java_collection;
    
    import java.util.List;
    import java.util.Vector;
    /*
     * Vector 예제 : Collection 프레임워크 이전에 사용되던 클래스.
     *             List 의 구현 클래스
     * list.addElement(5.0); //Vector의 추가기능 메서드. add 와 같은 기능
     */
    
    public class ListEx2 {
        public static void main(String[] args) {
            //List list = new Vector(); // <> 생략 가능
            List<Double> list = new Vector<Double>();
            list.add(0.3);
            list.add(Math.PI);
            //list.addElement(5.0); // Vector의 추가기능 메서드 -> add 와 같은 기능
            list.add(5.0);
            for(Object o : list){
                System.out.println(o);
            }
            System.out.println("1: " + list);
    
            double num = 0.5;
            int index = list.indexOf(num);
            if(index >=0)
                System.out.println(num + "의 위치:" + index);
            else
                System.out.println(num + "은 List에 없습니다.");
            num = 0.3;
            System.out.println(list.indexOf(num)); // 0
            System.out.println(list.indexOf(5.0)); // 2
    
            if(list.contains(num)){ // list 의 요소중 0.3인 데이터가 존재하는지 묻는 구문
                list.remove(num); // 삭제
                System.out.println(num + "삭제됨.");
            }
            System.out.println("2: " + list);
            System.out.println(list.indexOf(num));//-1
            System.out.println(list.indexOf(5.0)); //1
            System.out.println(list);
        }
        
    }

    -> Vector는 ArrayList와 기능은 거의 비슷하고 약간의 메서드 차이가 있다.

    -> Vector는 스레드 관련해서 자주 사용하는 메서드이다.

     

     

     

     

     

    300x250

    댓글

Designed by Tistory.