티스토리 뷰
반응형
1. 리스트(List)
- 리스트는 배열의 한계로 만들어진 자료형입니다.
- 배열의 경우 크기가 정해져 있습니다.
- 프로그래밍을 하다보면 크기를 알 수 없는 상황이 발생합니다. 이런 경우에 List를 사용하면 동적으로 자료형의 개수를 늘릴 수 있습니다.
import java.util.List;
2. ArrayList
- ArrayList는 List 인터페이스를 상속 받은 클래스 중 하나입니다.
- 배열과 동일하게 인덱스는 0부터 시작합니다.
- 내부적으로 저장 가능한 메모리 용량(Capacity)이 있으며 그 이상을 저장하려고 할 때 새로운 메모리를 할당합니다.
ArrayList 생성
import java.util.ArrayList;
- ArrayList를 사용하기 위해서는 import java.util.ArrayList; 와 같이 ArrayList를 먼저 import해야 합니다.
ArrayList<String> names = new ArrayList<String>();
- ArrayList 클래스의 주요 메소드
메소드 | 설명 |
boolean add(E element) | ArrayList의 맨 뒤에 element 추가 |
void add(int index, E element) | 인덱스 index위치에 elemnet 삽입 |
boolean addAll(Collection<? extends E> c) | 컬렉션 c의 모든 요소를 ArrayList의 맨 뒤에 추가 |
void clear() | ArrayList의 모든 요소 삭제 |
boolean contains(Object o) | ArrayList가 지정된 객체를 포함하고 있으면 true 리턴 |
E elementAt(int index) | index 인덱스의 요소 리턴 |
E get(int index) | index 인덱스의 요소 리턴 |
int indexOf(Object o) | o와 같은 첫번째 요소의 인덱스 리턴 없으면 -1 리턴 |
boolean isEmpty() | ArrayList가 비어있으면 true 리턴 |
E remove(int index) | index 인덱스의 요소 삭제 |
boolean remove(Object o) | o와 같은 첫 번째 요소를 ArrayList에서 삭제 |
int size() | ArrayList가 포함하는 요소의 개수 리턴 |
Object[] toArray() | ArrayList의 모든 요소를 포함하는 배열 리턴 |
ArrayList에 요소 삽입(add())
import java.util.ArrayList;
public class Ex01 {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<String>();
names.add("홍길동");
names.add("홍길순");
names.add("김영희");
names.add("김철수");
names.add("단미");
System.out.println(names);
}
}
- add()는 리스트의 맨 끝에 값을 추가합니다.
- 인덱스를 지정하면 해당 인덱스에 값이 추가되고 그 인덱스부터 한 자리씩 뒤로 밀려납니다.
import java.util.ArrayList;
public class Ex01 {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<String>();
names.add("홍길동");
names.add("홍길순");
names.add("김영희");
names.add("김철수");
names.add("단미");
names.add(0, "라이프");
System.out.println(names);
}
}
ArrayList 내의 요소 알아내기 (get() 이나 elementAt())
System.out.println(names.get(3)); //김영희 리턴
ArrayList에서 크기 알아내기(size())
System.out.println(names.size()); //사이즈 6 리턴
ArrayList에서 요소 삭제(remove())
names.remove(1); //1번 요소 홍길동 삭제
- ArrayList에 있는 모든 요소를 삭제하려면 clear()를 호출한다.
names.clar();
3. ArrayList 모든 요소 출력하기
ArrayList 내의 요소를 for문으로 출력
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class Ex02 {
public static void main(String[] args) {
ArrayList<String> monsters = new ArrayList<>();
monsters.add("피카츄");
monsters.add("라이츄");
monsters.add("파이리");
monsters.add("꼬부기");
// for 문
for (int i = 0; i < monsters.size(); ++i) {
System.out.print(monsters.get(i) + " ");
}
}
}
ArrayList 내의 요소를 for-each문으로 출력
ArrayList 내의 요소를 iterator으로 출력
import java.util.ArrayList;
import java.util.Iterator;
public class Ex02 {
public static void main(String[] args) {
ArrayList<String> monsters = new ArrayList<>();
monsters.add("피카츄");
monsters.add("라이츄");
monsters.add("파이리");
monsters.add("꼬부기");
// iterator
Iterator<String> iterator = monsters.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
}
ArrayList 내의 요소를 listIterator으로 출력
import java.util.ArrayList;
import java.util.ListIterator;
public class Ex02 {
public static void main(String[] args) {
ArrayList<String> monsters = new ArrayList<>();
monsters.add("피카츄");
monsters.add("라이츄");
monsters.add("파이리");
monsters.add("꼬부기");
// listIterator
ListIterator<String> listIterator = monsters.listIterator();
while (listIterator.hasNext()) {
// 순방향으로 진행하면서 읽어온다.
System.out.print(listIterator.next() + " ");
}
System.out.println();
while (listIterator.hasPrevious()) {
// 역방향으로 진행하면서 읽어온다.
System.out.print(listIterator.previous() + " ");
}
}
}
4. ArrayList 내의 값 검색
값이 존재하는지 유무(contains())
boolean contains = monsters.contains("꼬부기"); //꼬부기가 존재하는지?
System.out.println(contains);
- ArrayList 내에 값이 있다면 true가 리턴되고 없다면 false가 리턴됩니다.
값의 인덱스(indexOf())
int index = monsters.indexOf("꼬부기"); //꼬부기의 인덱스 확인
System.out.println(index);
- 값이 존재하지 않을 경우 -1을 리턴합니다.
반응형
'JAVA' 카테고리의 다른 글
[Java] 클래스(class)의 개념 (1) | 2022.03.22 |
---|---|
[Java] 객체지향 프로그래밍(OOP) (0) | 2022.03.21 |
[Java] 배열 (2) | 2022.03.14 |
[Java] 반복문(for문, while문, do-while문) (0) | 2022.03.12 |
[Java] 조건문(if문, if-else, switch-case) (0) | 2022.03.11 |
댓글
반응형
공지사항