ArrayList 객체 저장 - ArrayList gaegche jeojang

ArrayList란?

ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트입니다.

1. 한번 생성되면 크기가 변하지 않는 배열과는 달리 ArrayList는 객체들이 추가되어 저장 용량(capacity)을 초과한다면 자동으로 부족한 크기만큼 저장 용량(capacity)이 늘어난다는 특징을 가지고 있습니다.

ArrayList 선언

import java.util.ArrayList;

ArrayList list = new ArrayList();//타입 미설정 Object로 선언된다.
ArrayList<Student> members = new ArrayList<Student>();//타입설정 Student객체만 사용가능
ArrayList<Integer> num = new ArrayList<Integer>();//타입설정 int타입만 사용가능
ArrayList<Integer> num2 = new ArrayList<>();//new에서 타입 파라미터 생략가능
ArrayList<Integer> num3 = new ArrayList<Integer>(10);//초기 용량(capacity)지정
ArrayList<Integer> list2 = new ArrayList<Integer>(Arrays.asList(1,2,3));//생성시 값추가

ArrayList <>파라미터는 Wrapper클래스를 사용해야한다.

값 추가 list.add( );

ArrayList 객체 저장 - ArrayList gaegche jeojang
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3); //값 추가
list.add(null); //null값도 add가능
list.add(1,10); //index 1뒤에 10 삽입
ArrayList<Student> list = new ArrayList<Student>();
Student student = new Student(name,age);
members.add(student);
members.add(new Member("홍길동",15));
ArrayList 객체 저장 - ArrayList gaegche jeojang

값 수정 list.set(index, E element);

//list = {0,1,2,3...};

//리스트의 인덱스0의 값을 100으로 변경한다.
list.set(0, 100);

//바뀐 리스트의 값
//list = {100,1,2,3...};
ArrayList 객체 저장 - ArrayList gaegche jeojang

값 삭제 list.remove(index);

list.remove(2); //인덱스:2 값 삭제
ArrayList 객체 저장 - ArrayList gaegche jeojang

값 가져오기 list.get(index);

list.get(2); //인덱스:2 값 가져오기
ArrayList 객체 저장 - ArrayList gaegche jeojang

값 검색

ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.contains(1)); //list에 1이 있는지 검색 : true 
System.out.println(list.indexOf(1)); //1이 있는 index반환 없으면 -1

반복자 ( iterator )

Iterator 객체 생성

ArrayList<Integer> numbers = new ArrayList<>();
Iterator it<Integer> = numbers.iterator();

it.hasNext()로 numbers에 다음값이 있는지 확인, 있으면 -> it.next()로 불러온다.

while(it.hasNext()){
    System.out.println(it.next());          
}

while 값이 없을때까지, 반복

while(it.hasNext()){
    int value = it.next();
    if(value == 30){
        it.remove();
    }                       
}
for(int value : numbers){
    System.out.println(value);
}

[참고]

https://www.w3resource.com/java-tutorial/arraylist/arraylist_set.php

https://programmers.co.kr/learn/courses/17/lessons/805

https://coding-factory.tistory.com/551

점프 투 자바 00장 들어가기 전에 00-01 머리말 00-02 주요변경이력 00-03 저자소개 00-04 책 구입 안내 01장 자바란 무엇인가? 01-01 자바에 대하여 01-02 자바의 특징 01-03 안녕 세상! 01-04 자바 산책하기 02장 자바 시작하기 02-01 자바 소스코드의 구조 02-02 변수와 자료형 02-03 명명 규칙 02-04 주석 03장 자료형 03-01 숫자 (Number) 03-02 불 (boolean) 03-03 문자 (char) 03-04 문자열 (String) 03-05 StringBuffer 03-06 배열 (Array) 03-07 리스트 (List) 03-08 맵 (Map) 03-09 집합 (Set) 03-10 상수집합 (Enum) 03-11 형변환과 final 03장 연습문제 04장 제어문 04-01 if 문 04-02 switch/case 문 04-03 while 문 04-04 for 문 04-05 for each 문 04장 연습문제 05장 객체지향 프로그래밍 05-01 객체지향 프로그래밍이란? 05-02 클래스 05-03 메소드 (Method) 05-04 Call by value 05-05 상속 05-06 생성자 05-07 인터페이스 05-08 다형성 05-09 추상클래스 05장 연습문제 06장 입출력 06-01 콘솔 입출력 06-02 파일 입출력 06장 연습문제 07장 자바 날개 달기 07-01 패키지 (Package) 07-02 접근제어자 (Access Modifier) 07-03 정적(static) 변수와 메소드 07-04 예외처리 (Exception) 07-05 쓰레드(Thread) 07-06 함수형 프로그래밍 07장 연습문제 08장 자바 프로그래밍, 어떻게 시작해야 할까? 08-01 3과 5의 배수 합하기 08-02 게시판 페이징하기 08-03 자릿수 구하기 08-04 공백을 제외한 글자수 세기 09장 종합문제 10장 풀이 11장 마치며 A 부록 A1 이클립스 기본 사용법 A2 JVM, JRE, JDK의 차이 A3 public 클래스 B 작은 프로젝트 B1 전문 생성과 파싱 B2 두 날짜의 차이 구하기