컬렉션 프레임워크

yoongiiii·2023년 10월 23일
0

컬렉션 프레임워크
-여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음

  • Java Collection 자료구조(List, Set, Map 등)를 사용하면 데이터를 조작할 때 다양한 API를 사용할 수 있다.

✍🏻 List

순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.

  • 초기에는 내부에 10개 객체를 저장할 수 있는 초기 용량을 가짐
  • 객체 수에 따라 용량은 자동으로 증가
  • 객체를 추가하면 0번부터 차례대로 저장
  • 특정 객체를 제거하면 바로 뒤 인덱스부터 마지막까지 모두 1씩 앞으로
  • 객체 추가, 제거가 빈번하다면 LinkedList가 좋음
  • 인덱스로 객체를 찾거나(_검색), 맨 마지막에 객체를 추가하는 데에는 ArrayList가 좋음

01. ArrayList

	// 생성
	List<String> list = new ArrayList<>();

	// 배열 => List
	List<String> 새 리스트 이름 = Arrays.asList(배열이름);

	// 메소드
	list.add("유영");
	list.add(0, "태훈"); // 주어진 인덱스에 객체 추가
	list.set(0, "두부"); // 인덱스에 저장된 객체를 주어진 객체로 바꿈

	list.contains("유영") // true
	list.get(1) // return 유영
	list.size() // 객체 수 리턴
	list.isEmpty()

	// 객체 삭제
	list.clear();
	list.remove(1) // 인덱스 1 삭제
	list.remove("태훈") // 객체를 직접 지정해서 삭제

02. LinkedList

✍🏻 Set

순서가 없는 데이터의 집합, 데이터의 중복을 허용하지 않는다.

  • 메소드 중 add, contains, isEmpty, size, clear, remove 모두 list와 동일

01. HashSet

	Set<String> set = new HashSet<>();

	//반복자 Iterator 제공
	Iterator<String> iterator = set.iterator();
	while(iterator.hasNext()) {
	String str = iterator.next();
	}

	// for문으로도 반복 가능
	for(String str: set){ }

✍🏻 Map

key와 value 한 쌍으로 이루어지는 데이터의 집합, 순서가 없다.
key값은 중복을 허용하지 않지만, value 값은 중복될 수 있다.

01.HashMap

	// 선언
 	MapPractice<String, Integer> map = new HashMap<>();

 	// 객체 추가
 	map.put("은기", 158); 

 	// 객체 검색
 	map.containsKey("은기") // true
 	map.containsValue(158) // true
 	map.get("은기") // 158

 	map.isEmpty();
 	map.size();
 	map.keySet(); // key를 set에 담아서 리턴

 	map.clear();
 	map.remove("은기");

 	// 반복

 	// 0.
 	for(Boolean key: map.keySet()) {
    	if(key) {
         System.out.println(result.get(key));
     	}
 	}

 	// 1. keySet() 메소드로 모든 키를 얻은 다음, 반복을 통해 키와 값을 얻는 방법
 	Set<String> keySet = map.keySet();
 	Iterator<String> keyIterator = keySet.iterator();
    while(keyIterator.hasNext()) {
    	String key = keyIterator.next();
        Integer value = map.get(key);
     }

	// 2. entrySet() 메소드로 모든 MapPractice.Entry를 얻은 다음, 
	// getKey(), getValue() 메소드 사용
 	Set<MapPractice.Entry<String, Integer> entrySet = map.entrySet();
    Iterator<MapPractice.Entry<String, Integer> entryIterator = entrySet.iterator();
    while(entryIterator.hasNext()){
    	MapPractice.Entry<String, Inteeger> entry = entryIterator.next();
        String key = entry.getKey();
   		Integer value = entry.getValue();
 	}

0개의 댓글