ArrayList 클래스는 List 컬렉션 클래스에 속하는 클래스이다. List 클래스는 요소의 저장 순서가 유지 되며, 같은 요소의 중복 저장을 허용 한다는 특징을 가지고 있다.
List 컬렉션 클래스에 속하는 클래스에는
ArrayList, LinkedList, Vector, Stack 등이 있다. 그 중 ArrayList는 가장 많이 사용되는 컬렉션 클래스 중 하나이며 배열을 이용하기 때문에 인덱스를 이용해 배열 요소에 빠르게 접근이 가능하다. 하지만 배열은 크기를 변경할 수 없는 인스턴스이므로, 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존의 요소들을 옮겨야 하는 복잡한 과정을 거쳐야 한다.
ArrayList 생성문법
ArrayList <객체> ArrayList이름 = new ArrayList <> ();
// 밑에 예시처럼 <> 는 생량 가능하다.
//Arraylist는 생성 후 import java.util.ArrayList; 를 해줘야 한다.
//import java.util.ArrayList; 는 ArrayList에 마우스 대면 뜬다
예시1)
package ArrayList;
import java.util.ArrayList;
public class ArrayList1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list = new ArrayList();
// 추가하는 메소드 add () ; 맨 끝 데이터에 추가
list.add("saasf");
list.add(1);
list.add(2.34f);
list.add(23.45);
System.out.println("데이터 개수 : " + list.size()); // size 는 데이터 개수
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i)); // arraylist 에서는 get으로 값을 꺼내는 것
}
}
}
예시2)
package ArrayList;
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayList2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// <타입>: 제너릭. 타입한정자, 여기에 원하는 것 작성 가능 클래스 타입 가능
ArrayList<String> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
System.out.println("원하는 글자를 입력하시오");
String t1 = sc.next();
list.add(t1);// 마지막 데이터로 추가
list.add(0, "bbb");
// 지정한 인덱스[0]에 데이터 끼워 넣기 = 지우라는 거 아님 그냥 한칸씩 미루라는 것
list.add("ccc");
list.add("ddd");
list.set(2, "abcd"); // set 이게 지우라는 것
int i = 0;
System.out.println("전체 데이터");
for (i = 0; i < list.size(); i++) {
System.out.println(list.get(i)); // 데이터를 꺼내는 메소드가 get
}
System.out.println("ddd 찾고 삭제");
if (list.contains("ddd")) {
// contains = 값이 있나 없나 확인 한 후 true 와 false 로 반환 해줌
int idx = list.indexOf("ddd"); // indexOf(): 위치를 찾아 줌 / 값이 없으면 -1로
System.out.println("ddd는 " + idx + "방에 있음");
list.remove(idx);
// remove 요소 한개를 삭제하는 매서드, 파라미터는 방번호 데이터를 넣으면 된다.
}
System.out.println("aaa 삭제");
list.remove("aaa"); // 삭제할 데이터를 직접 입력하고 데이터를 프로그램이 찾아서 삭제해줌
System.out.println("삭제 후 전체 데이터");
for (i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
if (list.isEmpty()) { // 비었나 안비었나 확인한느거.
// 리스트 비었으면 true 아니면 false 반환
System.out.println("비었음");
} else {
System.out.println("데이터 있음");
}
System.out.println("데이터 전체 삭제");
list.clear();// 전체 삭제
if (list.isEmpty()) { // 전체 삭제했기에 다시 이즈엠티하면 비었음
System.out.println("비었음");
} else {
System.out.println("데이터 있음");
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] Map 컬렉션 클래스 (0) | 2023.03.07 |
---|---|
[JAVA] 반복자 Iterator (0) | 2023.03.07 |
[JAVA] 컬렉션 프레임워크 (collection framework) (0) | 2023.03.06 |
[JAVA] lang package - warpper class (0) | 2023.03.04 |
[JAVA] lang package - StringBuilder & StringBuffer (0) | 2023.03.04 |