package ex02_ArrayList;
import java.util.ArrayList;
public class ArraylistMain {
public static void main(String[] args) {
// Collection
// 요소(Element)라고 불리는 가변 개수의 객체들의 잡합
// (기본 자료형을 저장하는 것은 불가능 int, double, float안됨) 객체만을 저장
// 여러 개의 객체 보관할 수 있게 만들어진 클래스들의 잡합
// 고정 크기의 배열을 다루는 불편함 해소
// 요소의 개수에 따라 자동 크기 조절
// 요소의 추가, 삭제에 따른 요소의 이동자동관
// 제네릭(generic) 기법으로 구현
// Collection의 한 종류인 ArrayList
// - 가변적인 크기를 가지고 있다.
// - 객체 자료형만 저장가능하다.
ArrayList<String> list = new ArrayList<String>();
// * <자료형> : 제네릭 기법
// --> 클래스 내부에서 사용할 자료형(데이터 타입)을 외부에서 지정하는 기법
// 1. ArrayList 생성하는 방법
// : ArrayList는 자료구조 그 자체는 아니다.
// 자료구조처럼 사용할 수 있게 설계되어 있는 클래스 파일
// 2. ArrayList에 데이터 추가하기
list.add("유부초밥");
list.add("두부카레");
list.add("치킨마요");
// 3. ArrayList에 있는 데이터를 가져오기
// System.out.println(list.get(2));
// 4. ArrayList에 데이터 삭제하기
// remove --> 데이터만 삭제되는게 아니고 칸 자체가 삭제되는 것.
// --> 뒤쪽에 있는 요소가 자동으로 앞쪽으로 붙는다!!
list.remove(1);
// 5. ArrayList에 데이터 특정 위치에 추가하기
list.add(1, "육회비빔밥");
System.out.println(list.get(1));
System.out.println(list.get(2));
// 6. 데이터를 전부 삭제
list.clear();
// 7. ArrayList의 크기를 확인하기
System.out.println(list.size());
// size는 메소드라서 소괄호 필요
// array.length <- length는 필드
}
}
package ex02_ArrayList;
import java.util.ArrayList;
import ex01_객체배열.Pokemon;
public class ArraysListMain2 {
public static void main(String[] args) {
// 1. 포켓몬 자료형들을 저장할 수 있는 가변적인 배열 리스트 생성
ArrayList<Pokemon> list = new ArrayList<Pokemon>();
// 2. list 데이터 추가하기
list.add(new Pokemon("뮤츠", "정신", 500, 5000, "스킬1"));
// --> 뮤츠, 정신, 500, 5000, "스킬1"
// 3. list에 0번째 방에 저장되어 있는 포켓몬의 이름과 타입을 출력해주세요.
System.out.println(list.get(0).getName() + " " + list.get(0).getType());
// 맨 뒤 메소드에 마우스 올리면 자료형 확인 가능 -> getType위에 마우스
// String도 객체
/* 1. 객체배열
--> 배열 개념과 동일함
Pokemon[] array = new Pokemon[3];
array[0] = new Pokemon("피카츄","전기");
array[0].getName();
2. ArrayList
--> Collection 중에 하나!!
--> 가변적인 배열과 같은 형태를 가지고 있는 클래스
--> 클래스(레퍼런스) 형태들만 하나로 묶어서 저장 가능!
(1) ArrayList 생성하기
--> String 자료형을 저장하는 list 가변적인 배열 생성
ArrayList<String> list = new ArrayList<String>();
(2) 데이터 추가하기
list.add("데이터");
list.add(new Pokemon("")); 객체도 넣을수 있다
(3) 원하는 위치에 추가하기
list.add(인덱스,"데이터");
(4) 데이터 삭제하기
list.remove(인덱스번호);
(5) 모든 데이터 삭제하기
list.clear();
(6) 데이터 가져오기
list.get(인덱스);
list.get(0).getName();
(7) list의 크기
list.size();
*/
}
}