1.Java Collection Framework
Java 컬렉션 프레임워크는 자바의 컬렉션(모음)객체들을 다루기 위해 제공되는 재사용 가능한 클래스 또는 인터페이스를 통칭하는 표현임 . 프레임워크(Framework)라 말하지만, 사실 라이브러리 (Library)처럼 사용
<List 인터페이스 특징>
1) 순서(인덱스)가 존재하는 데이터의 집합이다.
2) 데이터가 중복되어도 저장이 가능하다(순서만 다르면 중복저장 가능함)
<List 인터페이스를 구현하고 있는 클래스>
Stack, Vector, LinkedList, ArrayList
<ArrayList >
Collection 프레임워크의 일부 , java.util 패키지에 소속되어 있으며
List 인터페이스에서 상속받아 사용됨
객체가 추가되어 용량을 초과하면 자동으로 부족한 크기만큼 용량이 늘어남/ 배열과의 차이점
기본용량은 10으로 저장되어있다
<ArrayList CRUD>
add()메서드 이용하여 데이터를 추가 ex) list1.add("aaa");
size() 데이터의 갯수
get을 사용하여 데이터를 꺼내올 수 있음
ex)System.out.println("1번째 자료 :" + list1.get(0));
add를 사용해 데이터를 끼워 넣기도 한다.
ex) list1.add(0, "zzz"); 인덱스로 위치 지정하여 값을 넣어주었다
set 을 이용하여 데이터를 변경
ex)String temp = (String) list1.set(0, "YYY"); 바꿀 위치의 인덱스, 바꿀 값
remove 삭제
ex) list1.remove(0); 삭제할 위치의 인덱스를 이용하여 삭제
list1.remove("bbb"); 삭제할 내용지정
list1.remove(new Integer(111));
정수형을 삭제하는 경우 list1.remove(111)이라고 한다면 인덱스를 지우는 것이라고 인식해버린다.
<리스트의 삭제처리>
list 는 앞에것이 삭제되면 앞으로 계속 댕겨지기 때문에
다지우고 싶다면 뒤에서부터 지워주어야 한다.
==================================================================================
선언할때 한개의 타입만담을 경우 제네릭을 지정하여 선언할 수 있다.
List<String> list2 = new ArrayList<String>();
list2.add("AAA");
list2.add("BBB");
list2.add("CCC");
list2.add("DDD");
list2.add("EEE");
<비교객체>
1.contains = 리스트에 '비교객체'를 찾아 '비교객체'가 있으면 true, 없으면 false 리턴한다
System.out.println(list2.contains("DDD"));
System.out.println(list2.contains("ZZZ"));
2.indexOf = 리스트에서 '비교객체'를 찾아 '비교 객체'가 있는 index값을 반환한다 없으면 -1을 반환
System.out.println("DDD의 index값: " + list2.indexOf("DDD"));
System.out.println("ZZZ의 index값: " + list2.indexOf("ZZZ"));
======================================================================================
<리스트의 데이터들을 배열로 반환>
toArray() => 리스트 안의 데이터들을 배열로 변환하여 반환한다.
기본적으로 object형 배열로 반환한다.
Object[] strArr = list2.toArray();
System.out.println("배열의 개수: " + strArr.length);
<리스트의 제너릭 타입에 맞는 자료형의 배열로 변환하는 방법>
제너릭타입의 0개짜리 배열을 생성해서 배열변수로 넣어준다.
toArrray(new 제너릭타입[0])
String[] strArr2 = list2.toArray(new String[0]);
System.out.println("strArr2의 개수 : " + strArr2.length);
'고급JAVA' 카테고리의 다른 글
Hashset (0) | 2022.07.23 |
---|---|
Comparable / Comparator (0) | 2022.07.23 |
Stack & Queue (0) | 2022.07.23 |
고급자바 D2 (0) | 2022.07.22 |
고급자바 D1 List , Stack , Queue (0) | 2022.07.20 |