반응형
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<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));
값 수정 list.set(index, E element);
//list = {0,1,2,3...};
//리스트의 인덱스0의 값을 100으로 변경한다.
list.set(0, 100);
//바뀐 리스트의 값
//list = {100,1,2,3...};
값 삭제 list.remove(index);
list.remove(2); //인덱스:2 값 삭제
값 가져오기 list.get(index);
list.get(2); //인덱스:2 값 가져오기
값 검색
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
반응형