ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 리스트이다.
일반적인 배열과 같은 순차리스트이며 인덱스로 내부의 객체를 관리한다는 점등이 유사하지만
한번 생성되면 크기가 변하지 않는 배열과는 달리 ArrayList는 객체들이 추가되어 저장용량을 초과한다면
자동으로 부족한 크기만큼 저장 용량이 늘어나는게 특징이다.
ArrayList의 선언
ArrayList list = new ArrayList();
이렇게 선언하지만 선언할때 ArrayList의 타입을 명시해주는것이 좋다. 제너릭스라는 개념이 있는데
ArrayList<String> list = new ArrayList<String>();
이라고 되어있다면 String객체들만 add되어질수있고 다른 타입의 객체는 사용 불가능합니다.
ArrayList 값 추가
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3); //값 추가
list.add(null); //null값도 add가능
list.add(1,10); //index 1뒤에 10 삽입
ArrayList<Student> members = new ArrayList<Student>();
Student student = new Student(name,age);
members.add(student);
members.add(new membebr("홍길동",15));
ArrayList에 값을 추가하려면 ArrayList의 add(index, value) 메소드를 사용하면 됩니다.
index를 생략하면 ArrayList 맨 뒤에 데이터가 추가되며 index중간에 값을 추가하면 해당 인덱스부터 마지막 인덱스까지 모두 1씩 뒤로 밀려납니다.
ArrayList 값 삭제
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
list.remove(1);
list.clear();
ArrayList에 값을 제거하려면 ArrayList의 remove(index) 메소드를 사용하면 됩니다.
remove()함수를 사용하여 특정 인덱스의 객체를 제거하면 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨집니다.
모든 값을 제거하려면 clear() 메소드를 사용하면 됩니다.
ArrayList 크기 구하기
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.size());
ArrayList의 크기를 구하려면 ArrayList의 size() 메소드를 사용하면 됩니다.
ArrayList 값 출력
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.get(0));//0번째 index 출력
for(Integer i : list) { //for문을 통한 전체출력 System.out.println(i);
}
Iterator iter = list.iterator(); //Iterator 선언
while(iter.hasNext()){//다음값이 있는지 체크
System.out.println(iter.next()); //값 출력
}
ArrayList의 get(index) 메소드를 사용하면 ArrayList의 원하는 index의 값이 리턴됩니다.
전체출력은 대부분 for문을 통해서 출력을하고 Iterator를 사용해서 출력을 할수도 있습니다.
ArrayList 값 검색
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
ArrayList에서 찾고자 하는 값을 검색하려면 ArrayList의 contains(value) 메소드를 사용하면 됩니다.
만약 값이 있다면 true가 리턴되고 값이 없다면 false가 리턴됩니다.
값을 있는 index를 찾으려면 indexOf(value) 메소드를 사용하면 되고 만약 값이 없다면 -1을 리턴합니다.
'- 코딩 공부 > Java' 카테고리의 다른 글
[JAVA] 람다표현식이란 무엇인가? (0) | 2021.02.24 |
---|---|
[JAVA] 참조변수란 무엇인가? (0) | 2021.02.16 |
[JAVA] 생성자란 무엇인가 ? (0) | 2021.02.12 |