본문 바로가기
고급JAVA

ArrayList

by 현닝이 2022. 7. 23.

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