본문 바로가기

Java

자바 컬렉션 - list

컬렉션이란? 자료구조 개념이 내장되어 있는 클래스로
자바에서 제공하는 "자료구조"를 담당하는 "프레임워크"이다
컬렉션 장점
  1. 크기 지정해줄 필요 없음, 만일 지정했다고 하더라도 더 많은 데이터들이 들어오면 알아서 사이즈 늘려줌 크기의 제약이 없음 
  2. 중간에 값을 추가한다거나 삭제하는 경우, 값을 땡겨주는 작업(알고리즘)을 직접 기술할 필요가 없음 단지 메소드 호출만으로 내부적으로 진행됨 
  3. 한 공간에 여러 타입의 데이터들 저장 가능
ArrayList list = new ArrayList(3);
  • ArrayList는 크기 지정 할 수도 안 할 수도 있음(안하면 기본 크기 10)
  • 현재 list에는 아무 것도 없다

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

list.add(new Music("Attention", "뉴진스"));
list.add(new Music("쌔삥", "지아코"));
list.add(new Music("죽일놈", "다이나믹 듀오"));
list.add("가보자고");
  • 지정된 크기보다 더 많이 넣어도 오류가 안남 => 장점 1: 크기의 제약이 없음
  • 다양한 타입의 데이터 담을 수 있음 => 장점 3: 여러타입보관 가능

 2. add(int index, E e)

list.add(1, new Music("진심이 담긴 노래", "케이시"));
  • 직접 인덱스를 저장해서 해당 인덱스 위치에 데이터를 추가시켜주는 메소드
  • list 특징 : 순서 유지하면서 담김(0번 인덱스부터 차곡차곡)

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

list.remove(1);

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

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

5. size() : 해당 리스트의 사이즈를 반환 시켜주는 메소드

System.out.println("리스트의 사이즈 : " + list.size());
  • 몇 개의 데이터가 담겨 있는지 알려준다

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

Music m = (Music) list.get(0);
System.out.println(m);
String s = (String) list.get(3);
System.out.println(s);

System.out.println(list.get(1)); // list.get(1) 자체는 Object 타입
System.out.println(((Music) list.get(1)).getTitle());
// Object 타입이기 때문에 강제 형변환 해줘야한다

7. subList(int index1, int index2)

List sub = list.subList(0, 2); 
// list가 List 타입이므로 List 로 받아야함
// 0번 인덱스부터 1번 인덱스 까지만 sub에 담는다

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

list.addAll(sub);
// list에 sub에 있는 모든 요소를 입력

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

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

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

list.clear();
반복문을 통해 순차적으로 list 출력

1) 단순한 for문

for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}

2) 향상된 for문

for(Object o : list) { // 가보자고가 있어서 Music이 아니고 모든 걸 담아둘 수 있는 Object
			System.out.println(o);
		}
ArrayList list = new ArrayList(); = Music 객체고 뭐고 다 들어감
ArrayList<Music> list = new ArrayList<Music>(); = 오직 Music 객체만 들어감; 제네릭 설정한다고 말함
제네릭<> 사용하는 이유
  • 명시된 타입의 객체만 저장하도록 제한을 둘 수 있음
  • 컬렉션에 저장된 객체를 꺼내서 사용할 때 매번 형변환 하는 절차를 없애기 위해 

'Java' 카테고리의 다른 글

자바 컬렉션 - Map  (0) 2022.11.23
자바 컬렉션 - set  (0) 2022.11.22
자바 컬렉션 : ArrayList 제네릭  (0) 2022.11.20
자바 컬렉션 : ArrayList  (0) 2022.11.20
자바 예외 - UncheckedException  (0) 2022.11.18