본문 바로가기

JAVA

List<E> 컬렉션

다시 써보며 정리

객체 추가 : add(int index, E element), 특정 위치에 객체(컬렉션) 삽입

객체 설정 : set(int index, E element), 특정 위치에 객체 저장

 

객체 검색 : get(int index), indexOf(E e), lastIndexOf(E e)

 

반복 탐색 : listIterator(), subList(int from, int to)

 

정렬 : sort(Comparator c) : 비교자를 기준으로 정렬

 

 

ArrayList : 배열 기반으로 인덱스를 통한 빠른 검색

 - 크기 초과시 자동으로 크기를 늘려줌

 - 중간삽입/삭제는 느릴 수 있음

package 연습문제;

import java.util.ArrayList;

public class List {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// List<E>
		// 대표 구현 클래스 : ArrayList, LinkedList, Vector, Stack
		ArrayList<String> list1 = new ArrayList<>();
		ArrayList<String> list2 = new ArrayList<>(30); // 초기용량
		
		ArrayList<String> list = new ArrayList<>();
		list.add("Java");
		list.add("egg");
		list.add("tree");
		
		System.out.println(list.get(0)); // get() 안에 무조건 숫자가 들어가야한다 int index
		System.out.println(list.size());
		
		list.remove(0); // int index
		System.out.println(list);
		
		for(String str : list) {
			
			System.out.println(str);
			
		}
		
		// 위의 향상된 for문을 풀어써보기
		for(int i = 0; i < list.size(); i++) {
			
			String str = list.get(i);
			System.out.println(str);
			
		}
		

	}

}

 

 

 

LinkedList : 중간삽입/삭제가 빈번한 곳에 적합

 - 연결 리스트 자료구조 기반

 - 삽입/삭제가 빠르고 검색이 느림

 - 각 요소가 이전/다음 요소의 참조 주소를 저장하고 있음

public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// List<E>
		LinkedList<String> list = new LinkedList<>();
		
		list.add("Java");
		list.add("egg");
		list.add("frog");
		
		System.out.println(list.get(0));
		list.remove(0);
		System.out.println(list);
		
		list.set(0,"egg2");
		System.out.println(list);
		
		for(String str : list) {
			
			System.out.println(str);
			
		}
		
		for(int i = 0; i<list.size(); i++) {
			
			String str = list.get(i);
			System.out.println(str);
			
		}
		

	}

 

 

예제

public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// List<E>
		List<String> fruits = new ArrayList<>();
		
		fruits.add("Apple");
		fruits.add("Grape");
		fruits.add("Banana");
		
		System.out.println(fruits.contains("Apple"));
		System.out.println(fruits.contains("Orange"));
		
		System.out.println(fruits.size());
		
		fruits.remove("Banana");
		
		for(String fruit : fruits) {
			
			System.out.println(fruit);
			
		}
		
	}

 

'JAVA' 카테고리의 다른 글

객체 직렬화 / 역직렬화  (1) 2025.06.10
Stram API의 map과 flatMap의 차이점  (0) 2025.06.08
단일 책임 원칙(SRP)과 개방-폐쇄 원칙(OCP)  (0) 2025.06.05
컬렉션 프레임워크 - 2  (0) 2025.06.04
컬렉션 프레임워크 - 1  (0) 2025.06.04