자바의 배열은 길이 값이 고정되어있으므로 여러모로 불편합니다.
뱌열을 선언할 때 길이를 정해주어야 하기도 하고 정해진 길이 보다 더 많은 데이터를 담으려면
배열의 크기를 늘려주기도 해야하므로 여러모로 상당히 귀찮습니다.
첫 프로그래밍언어로 파이썬을 배운 저는 배열의 길이를 정한다는 개념이 없어서 좀 혼란스웠습니다.
그래서 자바에서도 파이썬의 리스트 처럼 사용할 수 있는 ArrayList에 대한 정리를 해보겠습니다.
import
import java.util.ArrayList;
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 값 추가
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3); //값 추가
list.add(null); //null값도 add가능
list.add(1,10); //index 1에 10 삽입
ArrayList 값 삭제
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.remove(1); //index 1 제거
list.clear(); //모든 값 제거
remove메소드에는 인자로 인덱스를 넣어주고 해당 인덱스의 값을 지워줍니다.
ArrayList 크기 구하기
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1); // [1]
list.add(2); // [1,2]
list.add(3); // [1,2,3]
list.size(); // 3
.size() 메소드를 사용해서 배열의 크기를 구할 수 있습니다.
배열의 .length와 같다고 볼 수 있습니다.
AllayList 인데스로 조회
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.get(0); // 1
list.get(1); // 2
list.get(2); // 3
.get() 메소드에 인자에 인덱스를 넣어서 조회할 수 있습니다.
ArrayList 값 검색
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list.contains(1)); //list에 1이 있는지 검색 : true
System.out.println(list.indexOf(1)); //1이 있는 index반환 없으면 -1
.contains() 메소드에 인자에 값을 넣어서 있는지 없는지 확인 할 수 있습니다.
파이썬의 in연산자와 같은 역할입니다.
.indexOf()메소드로 해당값의 인덱스를 반환합니다. 없으면 -1을 반환합니다.
출처: https://coding-factory.tistory.com/551
[Java] 자바 ArrayList 사용법 & 예제 총정리
ArrayList란? ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트입니다. 일반적인 배열과 같은 순차리스트이며 인덱스로 내부의 객체를 관리한다는점등이 유
coding-factory.tistory.com
위 블로그를 참고해서 약간의 수정을 해서 요약 정리했습니다.
'자바 자료구조' 카테고리의 다른 글
☕️ [JAVA] HashMap (0) | 2021.10.12 |
---|---|
☕️ [JAVA] LinkedList (0) | 2021.10.12 |
☕️ [JAVA] 이진 탐색트리 구현 (0) | 2021.10.08 |
☕️ [JAVA] 해시리니어 구현 (0) | 2021.10.07 |
☕️ [JAVA] 다중 연결리스트 구현 (0) | 2021.10.06 |