배열은 index의 갯수가 정해지면 절대 수정할 수 없지만,
List, ArrayList는 index의 제한이 없는 배열이다.
List는 객체를 일렬로 늘어놓은 구조를 가지고 있습니다.
객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공합니다.
# Vector
* ArrayList의 구형버전이며, 모든 메소드가 동기화 되어있음
* 잘 쓰이진 않음
# ArrayList
* 상당히 빠르고 크기를 마음대로 조절할 수 있는 배열
* 단방향 포인터 구조로 자료에 대한 순차적인 접근에 강점이 있음
# LinkedList
* 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 빠른 성능을 보장.
* 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임
# List 선언 및 사용
List<String> list = new ArrayList<String>();
--> String type의 인스턴스를 List타입으로 저장하겠다는 의미.
객체 추가는 add() 메소드를 사용하고, 객체를 찾아올 때는 get() 메소드를 사용합니다.
그리고 객체 삭제는 remove() 메소드를 사용합니다.
# ExArrayList.java
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
public class ExArrayList {
public static void main(String[] args) { List<String> listA = new ArrayList<String>();
listA.add("김삿갓"); listA.add("홍아리"); listA.add(new String("홍길동"));
listA.add(1, "1번째 요소값");
System.out.println(listA);
// 인덱스를 통한 조회 String element0 = listA.get(0).toString(); String element1 = listA.get(1).toString(); String element3 = listA.get(2).toString();
//Iterator 통한 전체 조회 Iterator iterator = listA.iterator(); while (iterator.hasNext()) { String element = (String) iterator.next(); }
//for-loop 통한 전체 조회 for(Object object : listA) { String element = (String) object; }
// 홍길동 앞에 값 추가 int index = listA.indexOf("홍길동"); listA.add(index, "홍길동 앞에 값 추가");
// 존재 여부 확인 System.out.println(listA.contains("홍길동"));
// 값 삭제하는 방법 System.out.println(listA.remove(0)); System.out.println(listA.remove("홍길동")); } } |
※ 참고 사이트 ※
★http://palpit.tistory.com/654
★http://mainia.tistory.com/2323
★http://arabiannight.tistory.com/entry/324?category=540115
★https://opentutorials.org/module/1335/8711
http://dreamzelkova.tistory.com/entry/%EB%A6%AC%EC%8A%A4%ED%8A%B8List
'Java > Java' 카테고리의 다른 글
Map Collection이란? (0) | 2018.05.23 |
---|---|
Set Collection이란? (0) | 2018.05.23 |
컬렉션 프레임워크(Collection Framework)란? (0) | 2018.05.23 |
향상된 for문 사용하기 (0) | 2018.05.20 |
GSON @SerializedName이란? (0) | 2018.05.20 |