삭제
입력 되어 있는 요소 세기
길이가 고정되어 있다
: 배열의 단점을 보안하기 위해 쓰는 유동적인 배열리스트
import java.util.ArrayList;
: ArrayList 클래스 쓰기 위해 필요한 구문
import java.util.ArrayList;
public class ArrayListExam {
public static void main(String[] args) {
// 배열
int[] arr = new int[5]; // 길이가 5인 숫자 배열
// > 길이가 정해짐
// ArrayList
ArrayList<Integer> list = new ArrayList<>();
// > 길이가 안 정해짐
}
}
import java.util.ArrayList;
public class ArrayListExam {
public static void main(String[] args) {
// 배열 -> 추가 x
// ArrayList -> 추가 o
// 뒤에서 부터 추가되어 앞에서 부터 채움
list.add(1); // 인덱스 0번 방에 1 추가
list.add(2); // 인덱스 1번 방에 2 추가
}
}
import java.util.ArrayList;
public class ArrayListExam {
public static void main(String[] args) {
// 배열
System.out.println(arr[0]); // arr 배열의 0번방 조회
System.out.println(arr[1]); // arr 배열의 1번방 조회
System.out.println(arr[2]); // arr 배열의 2번방 조회
// ArrayList
System.out.println(list.get(0));
// list 배열의 0번방 조회
System.out.println(list.get(1));
// list 배열의 1번방 조회
// list 배열이 없는데 조회되면 방이
// 존재하지 않기 때문에 에러가 남
}
}
import java.util.ArrayList;
public class ArrayListExam {
public static void main(String[] args) {
// 배열
arr[0] = 10; // arr 배열의 0번 방의 값을 10으로 수정.
System.out.println(arr[0]);
// ArrayList
list.set(0, 10); // list 배열의 0번 방의 값을 10으로 수정.
System.out.println(list.get(0));
}
}
import java.util.ArrayList;
public class ArrayListExam {
public static void main(String[] args) {
// 배열 -> 삭제 X
// ArrayList
System.out.println(list.get(0));
System.out.println(list.get(1));
list.remove(0); // 0번방의 값을 삭제.
//삭제하면 뒤에 있는 요소들이 앞으로 땡겨짐
System.out.println(list.get(0));
// System.out.println(list.get(1));
// 삭제로 인해 1번방이 존재하지 않기 때문에 에러가 남
}
}
import java.util.ArrayList;
public class ArrayListExam {
public static void main(String[] args) {
// 배열 => length를 제공하기는 하지만 데이터의 개수랑 무관
// 따로 내가 변수에 직접 보관해야 함.
// ArrayList
System.out.println(list.size()); // 1
list.add(2);
list.add(3);
System.out.println(list.size()); // 3
}
}
: ArrayList는 자료형이 객체타입 이다.
※ 자료형
객체형 자료형
정수 - Integer
문자 - String
원시형 자료형
정수 - int
논리값 - boolean
실수 - double
import java.util.ArrayList;
public class ArrayListExam2 {
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<>();
// 정수
ArrayList<String> arr2 = new ArrayList<>();
// 문자
ArrayList<Person> arr3 = new ArrayList<>();
// Person 클래스
ArrayList<Car> arr4 = new ArrayList<>();
// Car 클래스
}
}
: ArrayList에는 많은 데이터가 있을 수 있기 때문에,
전체 순회를 통해서 원하는 값을 찾을 수 있어야한다.
import java.util.ArrayList;
publid class ArrayList{
public static void main(String[] arge){
ArrayList<String> name = new ArrayList<>();
// 새로운 ArrayList를 생성하고,name이라는 변수에
// ArrayList를 조종할 수 있는 리모컨을 담아줌
names.add("황진이");
// name에 있는 리모컨을 조종하여 ArrayList의 0번에 저장
names.add("임꺽정");
// name에 있는 리모컨을 조종하여 ArrayList의 1번에 저장
names.add("강감찬");
// name에 있는 리모컨을 조종하여 ArrayList의 2번에 저장
names.add("을지문덕");
// name에 있는 리모컨을 조종하여 ArrayList의 3번에 저장
names.add("정약용");
// name에 있는 리모컨을 조종하여 ArrayList의 4번에 저장
for(int i = 0; i < name.size();i++){
// 숫자를 담을 수 있는 i변수에 0을 담고,
// name에 저장되어있는 배열의 리모컨으로 배열의 길이(5)확인하여
// i는 배열의 길이(5)만큼 1씩 증가한다.
if(names.get(i).equals("임꺽정")){
// 만약 name에 저장되어 있는 배열의 리모컨을 조종해서
// 배열 i방에 "임꺽정"이 있다면
names.set(i,""심사임당");
// name에 저장되어 있는 배열의 리모컨을 조종해서
// i방에 있는 "임꺽정"을 "심사인당으로 바꿔줘
}
if(names.get(i).equals("울지문덕"){
// 만약 name에 저장되어 있는 배열의 리모컨을 조종해서
// 배열 i방에 "을지문덕"이 있다면
name.set(i, "유관순")
// name에 저장되어 있는 배열의 리모컨을 조종해서
// i방에 있는 "을지문덕"을 "유관순"으로 바꿔줘
}
}
}
}