본문 바로가기

Java

자바 컬렉션 : ArrayList

컬렉션이란? 자료구조 개념이 내장되어 있는 클래스로
자바에서 제공하는 "자료구조"를 담당하는 "프레임워크"입니다
컬렉션 장점 
  1. 크기 지정해줄 필요 없고 그 이상으로 데이터들이 들어오면 알아서 사이즈 늘려줍니다
  2. 중간에 값을 추가 및 삭제 시 알고리즘 대신 메소드 호출만으로 내부적으로 간단하게 진행할 수 있습니다
  3. 한 공간에 여러 타입의 데이터들을 저장할 수 있습니다
ArrayList list = new ArrayList(3);

결과값:
[Music [title=Attention, artist=뉴진스], Music [title=쌔삥, artist=지아코], 
Music [title=죽일놈, artist=다이나믹 듀오], 가보자고]
  • ArrayList는 크기 지정 할 수도 안 할 수도 있습니다(안하면 기본 크기 10)

1. add(E e) : 리스트 공간 끝에 전달될 데이터 추가시켜주는 메소드

list.add(new Music("Attention", "뉴진스"));
list.add(new Music("쌔삥", "지아코"));
list.add(new Music("죽일놈", "다이나믹 듀오"));
list.add("가보자고"); // 가보자고는 String 타입입니다


결과값 : 
[Music [title=Attention, artist=뉴진스], Music [title=진심이 담긴 노래, artist=케이시],
Music [title=쌔삥, artist=지아코], Music [title=죽일놈, artist=다이나믹 듀오], 가보자고]

2. add(int index, E e) : 직접 인덱스를 저장해서 해당 인덱스 위치에 데이터를 추가시켜주는 메소드

list.add(1, new Music("진심이 담긴 노래", "케이시"));
  • list의 특징은 순서를 유지하면서 차곡 차곡 담깁니다
  • 인덱스 중간에 삽입해도 복잡한 알고리즘을 구현할 필요가 없습니다

3. remove(int index) : 해당 인덱스 위치의 데이터 삭제 시켜주는 메소드

list.remove(1);

결과값
: [Music [title=Attention, artist=뉴진스], Music [title=쌔삥, artist=지아코],
Music [title=죽일놈, artist=다이나믹 듀오], 가보자고]

4. set(int index, E e) : 해당 인덱스 위치의 데이터를 E로 수정시키는 메소드

list.set(0, new Music("next level", "에스파"));

결과값
: [Music [title=next level, artist=에스파], Music [title=쌔삥, artist=지아코], 
Music [title=죽일놈, artist=다이나믹 듀오], 가보자고]

5. size() : 해당 리스트의 사이즈를 반환 시켜주는 메소드, 몇 개의 데이터가 담겨 있는지 알려준다

System.out.println("리스트의 사이즈 : " + list.size());

결과값
: 리스트의 사이즈 : 4

6. get(int index) : 해당 인덱스 위치의 객체를 반환 시켜주는 메소드

Music m = (Music) list.get(0); // list는 Object 타입으로 Music으로 강제형변환 필요
System.out.println(m);
String s = (String) list.get(3);
System.out.println(s);

결과 값 : 
Music [title=next level, artist=에스파]
가보자고

7. subList(int index1, int index2) : index1번 부터 index2 - 1 번 까지 출력

List sub = list.subList(0, 2); 
결과값
: [Music [title=next level, artist=에스파], Music [title=쌔삥, artist=지아코]]

8. addAll(Collection c) // 컬렉션을 통째로 뒤에 추가시켜주는 메소드

list.addAll(sub);

[Music [title=next level, artist=에스파], Music [title=쌔삥, artist=지아코],
Music [title=죽일놈, artist=다이나믹 듀오], 가보자고, Music [title=next level, artist=에스파], Music [title=쌔삥, artist=지아코]]

9. isEmpty() : boolean => 컬렉션이 비어있는지 묻는 메소드

System.out.println(list.isEmpty());'

결과값
: false, 배열이 비어있지 않기 때문

10. clear() : 리스트 안에 있는 내용을 싹 비워주는 메소드

list.clear();
System.out.println(list.isEmpty());

결과값 : true

 

반복문을 통해 순차적으로 출력
System.out.println("=====================================");
// 1) 단순한 for문
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
System.out.println("=====================================");
		// 2) 향상된 for문
		for(Object o : list) { // 가보자고가 있어서 Music이 아니고 모든 걸 담아둘 수 있는 Object
			System.out.println(o);
		}

'Java' 카테고리의 다른 글

자바 컬렉션 - list  (0) 2022.11.22
자바 컬렉션 : ArrayList 제네릭  (0) 2022.11.20
자바 예외 - UncheckedException  (0) 2022.11.18
자바 스트림  (0) 2022.11.17
자바 API  (0) 2022.11.16