ArrayList
ArrayList는 List 인터페이스의 구현체이다.
객체가 인덱스로 관리되므로 순서가 있고, 중복을 허용하는 점에서 Array와 유사한 점이 있지만,
Array는 크기가 고정되어 크기 변경이 불가한 반면에,
ArrayList는 크기 변경이 가능하다는 면에서 가장 큰 차이점이 있다.
ArrayList는 저장 용량을 초과한 객체가 들어오면 자동으로 저장용량을 늘린다.
ArrayList 선언하기
- ArrayList<자료형> 객체명 = new ArrayList<자료형>();
ArrayList<Integer> al = new ArrayList<Integer>();
- ArrayList<자료형> 객체명 = new ArrayList<자료형>(다른 ArrayList)
public class List03 { public static void main(String[] args) { ArrayList<String> al01 = new ArrayList<String>(); al01.add("홍길동"); al01.add("김길동"); al01.add("이길동"); al01.add("박길동"); al01.add("최길동"); System.out.println(al01);//[홍길동, 김길동, 이길동, 박길동, 최길동] //al02소스로 al01이 와도 값만 가져간다. ArrayList<String> al02 = new ArrayList<String>(al01); al02.add("황길동"); System.out.println(al02);//[홍길동, 김길동, 이길동, 박길동, 최길동, 황길동] System.out.println(al01 == al02);//두 객체는 다른 객체. false } }
값 추가하기
.add(입력값);
index 0부터 차례대로 값이 추가 됨
al.add(10);//index 0
al.add(20);//1
al.add(30);//2
al.add(40);//3
al.add(50);//4
값 호출하기
.get(인덱스);
String str = al.get(0);
String str2 = al.get(3);
특정 인덱스의 값 삭제
.remove(index)
al.remove(0);
//[20, 30, 40, 50]
특정 인덱스에 추가
.add(인덱스, 값)
al.add(0, 1000);
System.out.println(al);//[1000, 20, 30, 40, 50]
특정 인덱스 수정
.set(인덱스, 수정할 값)
al.set(al.size() - 1, 5000);
System.out.println(al);//[1000, 20, 30, 40, 5000]
그 값이 있는지 찾기
.contains(찾는 값)
- 있다면: true 반환
- 없다면: false 반환
System.out.println(al.contains(30));//true
System.out.println(al.contains(50));//false
찾는 값의 인덱스 반환
indexOf(찾는 값)
찾는 값이 없다면 -1 반환
System.out.println(al.indexOf(30));//index 2
System.out.println(al.indexOf(50));//-1 없을경우
비어있는지 확인
.isEmpty()
al.isEmpty();
EX01. ArrayList에 랜덤 값 저장하기
- 오름차순 정렬: Collections.sort(객체명);
- 무작위로 섞기: Collections.shuffle(객체명);
package collection.list;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public class List04 {
public static void main(String[] args) {
ArrayList<Integer> al = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
al.add((int)(Math.random() * 100 + 1));
}
System.out.println(al);//[16, 39, 23, 57, 57, 65, 36, 36, 88, 18]
//오름차순 정렬
//Collections.sort(객체명);
Collections.sort(al);
System.out.println(al);//[16, 18, 23, 36, 36, 39, 57, 57, 65, 88]
//무작위로 섞기
//Collections.shuffle(객체명);
Collections.shuffle(al);
System.out.println(al);//[23, 65, 57, 88, 16, 36, 39, 57, 18, 36]
//또다시 바퀴를 발명하지 마라.
}
}
EX02. InnerList
ArrayList 안에 ArrayList 넣기
[1, 2, 3]
[4, 5, 6]
[7, 8, 9] 출력
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
ArrayList<String> innerList = new ArrayList<String>();
innerList.add("1");
innerList.add("2");
innerList.add("3");
list.add(innerList);
innerList = new ArrayList<String>();
innerList.add("4");
innerList.add("5");
innerList.add("6");
list.add(innerList);
innerList = new ArrayList<String>();
innerList.add("7");
innerList.add("8");
innerList.add("9");
list.add(innerList);
for (ArrayList<String> in: list) {
System.out.println(in);
}
출력결과
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
※ innerList = new ArrayList<String>(); 을 사용하지 않는다면,
[7, 8, 9]
[7, 8, 9]
[7, 8, 9] 와 같이 출력된다.
'BackEnd > Java' 카테고리의 다른 글
[Java] VirtualBox 설치 (0) | 2021.07.19 |
---|---|
[Java] Linked List (0) | 2021.07.18 |
[Java] 제네릭 Generic (0) | 2021.07.14 |
[Java] 컬렉션 Collection (0) | 2021.07.14 |
[Java] 랩퍼클래스 Wrapper Class (0) | 2021.07.13 |
댓글