java027-1

제로·2022년 9월 21일
0

Java basic

목록 보기
33/45
post-custom-banner

List 컬렉션

  1. 특징
    • 인덱스로 관리
    • 중복 객체 저장 가능
  2. 구현 실제 클래스
    • ArrayList, Vector, LinkedList
  3. 주요 메서드
    1) boolean add() : 데이터 추가
    2) void add(int index, 추가 객체) : 특정 위치에 객체 추가
    3) set(int index, 변경 객체) : 특정 위치 값을 변경
    4) boolean contains(객체) : 해당 객체가 있는 여부 확인
    5) get(int index) : 특정 위치에 있는 객체 가져오기
    6) isEmpty() : 컬렉션이 비어 있는지 확인
    7) int size() : 컬렉션의 크기
    8) void clear() : 포함된 모든 객체를 삭제
    9) remove(int index) : 해당 위치의 객체를 삭제
    10) boolean remove(Object o) : 주어진 객체를 삭제
List<Product> plist = new ArrayList<Product>();
plist.add(new Product("사과", 3000, 2));
plist.add(new Product("키위",1700,2));
plist.add(new Product("딸기",1400,3)); 

Product p = plist.get(0);

System.out.println("객체등록여부: "+plist.contains(p));  //true
Product p2 = new Product("딸기",3400,1);
System.out.println("객체등록여부2: "+plist.contains(p2)); // false
plist.add(p2);
System.out.println("객체등록여부3: "+plist.contains(p2)); //true
System.out.println("크기: "+plist.size()); // 4 출력
System.out.println("비워있는지?:"+plist.isEmpty()); // false
plist.remove(0);
System.out.println("크기: "+plist.size()); // 3 출력
plist.clear();
System.out.println("크기: "+plist.size()); // 0 출력
System.out.println("비워있는지?:"+plist.isEmpty()); true

class Product{
	private String name;
    private int price;
    pirvate int cnt;
    public Product(String name, int cnt, int price) {
		this.name = name;
		this.cnt = cnt;
		this.price = price;
	}
	public String getName() {
		return name;
	}
    	public int getCnt() {
		return cnt;
	}
    	public int getPrice() {
		return price;
	}
    
}

Vector

  1. List list = new Vector();
  2. 특징
    1) 쓰레드 동기화
    2) 복수의 쓰레드가 동시에 Vector에 접근해 객체를 추가, 삭제하더라도 쓰레드에 안정
    ==> 쓰레드가 안정성이 부족하여 추가/삭제시 쓰레드 안정성 기능이 지원되지 않으면 생략되는 경우가 있다

LinkedList

  1. List list = new LinkedList();
  2. 특징
    1) 인접 참조를 링크해서 체인처럼 관리
    2) 특정 인덱스에서 객체를 제거하거나 추가하게되면 바로 앞/뒤 링크만 변경
    3) 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList보다 좋은 성능
profile
아자아자 화이팅
post-custom-banner

0개의 댓글