IT_Note

ArrayList

카테고리 없음2017. 4. 17. 02:09


list는 배열의 한계 때문에 만들어진 자료형이다.


배열을 사용하기 위해서는 크기를 정해야 하는데 크기를 알 수 없는 경우가 많다.

List는 메모리가 허용하는 한 계속해서 추가할 수 있다.


java.util.List 인터페이스

java.util.Collection인터페이스를 구현한다.



자료의 내부적인 자동 동기화 기능이 없다.

내부적으로 자료를 배열구조로 가지고 있는 객체, 데이터의 추가/삭제를 위해서는 내부적인 임시배열을 작성 후 데이터를 복사한다 (자료 추가/삭제시 단점)

레퍼런스 타입의 데이터만 저장할 수 있다

데이터 내용의 중복이 가능하다

null값 허용.


장점 : 데이터의 인덱스를 가지고 있기 때문에 검색,참조시 유리, 

단점 : 대량의 자료를 추가/삭제시 성능 저하.






1.선언



List<String> list = new ArrayList<>();


리스트에 저장할 데이터의 타입을 정한다. 위에는 String

<>꺽쇠는 제네릭이라고 하며 데이터의 타입을 정함.

 String이나 Integer , 클래스를 타입으로 지정하기도 한다.


제네릭으로 타입을 지정 안해줘도 되지만 보통 해줌 오류방지등등의 이점..

안할 경우 여러가지 add가능.


ArrayList<String> list = new ArrayList<>(); , Arraylist라고 해도 무방하다. 

차이점은 List는 인터페이스 이고 ArrayList는 구현체이다. List를 기반으로 만들어진것이 ArrayList..

이 부분은 다형성과 관련되어 있다. 일단 이정도로 넘어감.




2.추가


추가- list.add("첫번째인덱스"); 

list의 0번째 인덱스에 추가된다.


현재 list는 [첫번째인덱스]


요소값을 넣고 추가할 수도 있다. 

- list.add(1,"두번째인덱스");


현재 list는 [첫번째인덱스,두번째인덱스]



3.조회 


인덱스로 값을 조회하고 싶다면 get(index)함수 사용.


list.get(2);