본문 바로가기
Language/Java

자바 List 정의부터 출력까지

by wakestand 2019. 11. 25.
반응형

List는 자바의 자료형 중 하나로

배열과 비슷하지만 결정적으로 다른 점은

 

1. 크기를 자유롭게 설정 가능

- 배열은 처음 크기를 설정하고 나서부터는

크기 설정이 불가능하지만

리스트는 삽입과 삭제로 원하는대로 크기를 변경할 수 있다

 

2. 배열은 직접 액세스(Direct access),

순차 액세스(Sequential Access) 모두 가능,

List는 순차 액세스만 가능

 

직접 액세스(Direct Access)는

배열의 값으로 바로 접근하는 것을 말하고 

순차 액세스는(Sequential Access)는

처음부터 시작해

배열의 특정 값까지 접근하는 것을 말한다

 

당연하게도 직접 액세스가

훨씬 더 빠르게 접근할 수 있기 때문에

배열 안에 값을 넣거나 가져올 때는

Array가 List보다 더 빠르다

 

그러나 엄청 체감될 정도의 체감은 아니라는 것다

 

이제 간단하게 정리해보면

List는 삽입, 삭제를 통해 크기를 자유롭게 변경 가능하고

순차 액세스만 가능하기 때문에 배열보다는 좀 느리다

 

다만 배열은 크기를 변경할 수 없기 때문에

예기치 못한 상황에 대처하기 매우 힘든데

List는 동적으로 크기를 변경할 수 있기 때문에

그 점에 있어서는 배열보다 훨씬 유리하다

 

다음으로 List의 메소드들을 알아보자

 

List 선언 (ArrayList, LinkedList)

ArrayList<데이터형> 리스트명 = new ArrayList<데이터형>();

 

ArrayList와 LinkedList 두 유형으로 선언이 가능한데

ArrayList는 대량의 데이터 검색에

LinkedList는 대량의 데이터 삽입, 삭제에 유리하다

 

예제를 통한 차이를 알아보고 싶다면

아래 글을 참조하면 된다

 

자바 ArrayList, LinkedList 차이 예제로 알아보기

public static void main(String[] args) { ArrayList arrayList = new ArrayList(); LinkedList linkedList = new LinkedList(); // ArrayList add long startTime = System.nanoTime(); for (int i = 0; i < 100..

wakestand.tistory.com

 

List 추가

리스트명.add("값")

 

List 삭제 

리스트명.remove("값");

리스트명.remove(인덱스)

 

List 값 변경

리스트명.set(인덱스, "바꿀값");

 

List 크기 확인

리스트명.size();

 

List에 특정 값 들었는지 확인

리스트명.contains("값");

 

List가 비었는지 확인

리스트명.isEmpty();

 

List 안에 List, Set, 배열 전체 더하기

리스트명.addAll(다른컬렉션명(List, Set..));

- 배열도 합쳐줄 수 있음

리스트명.addAll(Arrays.asList(배열명)); -- 배열의 경우

 

코드를 통해 확인해보고 싶다면

아래 코드블록을 참조해주면 된다

 

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>(); // List 선언(ArrayList)
		LinkedList<String> list2 = new LinkedList<String>(); // List 선언(LinkedList)
		
		list2.add("E");
		list.add("A");
		list.add("B");
		list.add("C"); // List 추가
		list.add(0, "D"); // 0번째에 D값을 추가(동일한 값이 있을 경우 밀어냄)
		System.out.println("List 값 확인 : " + list);
		System.out.println("List 인덱스 값 확인 : " + list.get(0));
		
		list.remove(2); // List 삭제(인덱스)
		list.remove("B"); // List 삭제(값으로)
		
		list.set(0, "Z"); // List 값 변경 (인덱스, "변경할 값")
		
		System.out.println("List 크기 확인 : " + list.size());
		
		System.out.println("List 안에 특정 값 들었는지 확인 : " + list.contains("B"));
		
		System.out.println("List 안에 아무것도 들지 않았는지 확인 : " + list.isEmpty());
		
		list.addAll(list2); // 리스트에 다른 리스트 더하기
		String[] arr = {"ARRAY"};
		list.addAll(Arrays.asList(arr)); // 배열을 리스트로 더하기
		System.out.println("List 안에 다른 리스트 더하기 : " + list);
	}
반응형

댓글