study/java

자바/JAVA ArrayList

올스왑 2021. 1. 11. 15:20

배열은 동일한 자료형의 순차적 자료 구조이다. 배열은 연속된 자료구조이다.

 

ArrayList: List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트. 파이썬의 리스트와 비슷하다.

 

선언 방법

import java.util.ArrayList

public class ArrayListExam{
	ArrayList list = new ArrayList(); //타입 없이 선언된다.
    ArrayList<String> str = new ArrayList<String>(); // String 타입의 객체를 담는 ArrayList
    ArrayList<Integer> num = new ArrayList<Integer>(); // integer 타입의 객체를 담는 ArrayList
    ArrayList<Integer> num2 = new ArrayList<>(); // new에서 타입 생략 가능.
    ArrayList<Integer> num3 = new ArrayList<>(10); // 초기 용량 지정 가능.
    ArrayList<Integer> num4 = new ArrayList<Integer>(Arrays.asList(1,2,3)); // 미리 추가 가능.
}

 

값 추가, 삭제, 검색, 출력

ArrayList<Integer> num = new ArrayList<Integer>();
num.add(3); // 값 추가, 맨뒤에 삽입함.
num.add(null); //null값도 추가 가능.
num.add(1,10); // 1번 인덱스에 10 삽입

ArrayList<Member> mem = new ArrayList<Member>();
Member member1 = new Member("신짱구", 5);
mem.add(member1);
mem.add(new Member("신짱아", 1)); //객체 생성해서 바로 추가 가능.

num.remove(1); // 1번 인덱스 삭제, 그리고 빈칸은 뒤에 값들로 채워짐. 파이썬의 리스트와 같음.
num.clear(); // 모든 값 제거.

int memSize = mem.size(); // 크기를 리턴함

System.out.println(mem.get(0)); //0번째 index 출력

for(Member i : mem) {	//for문을 통한 전체출력
    System.out.println(i);
}

System.out.println(mem); // 배열 형태로 전체 출력

System.out.println(mem.contains(member1)); //member1이 있는지 검색 : true
System.out.println(mem.indexOf(member1)); //member1이 있는 index반환 없으면 -1