본문 바로가기

JAVA/Collection

ArrayList

1. ArrayList : List를 상속받는 객체중 하나로, 자료를 넣을시, 넣은 순서를 유지하고, 중복을 허용하는 자료 구조다.

넣는 자료의 자료형은 일관되지 않아도 된다.

 

2.ArrayList의 장점 : 

Collection의 장점이기도 하다. 배열과 달리 추가, 삭제, 삽입, 수정이 자유로우며, 여러 종류의 자료형을 한번에 넣을 수있다.

 

1)선언

ArrayList List명 = new ArrayList();  // 제네릭스 선언시 ArrayList<자료형> List명 = new ArryaList();

 

다형성이 적용된다.

List List명 = new ArrayList();

Collection List명 = new ArrayList();

 

2)메소드

List명.add(값); : 마지막 인덱스번호 +1 인덱스에 값을 추가 한다.

List명.add(인덱스번호 , 값); : 인덱스 번호 위치에 값을 삽입한다. 원래 있던 값부터 인덱스 번호가 +1씩 밀려난다.

List명.remove(인덱스번호); : 인덱스 번호 위치의 값을 삭제한다. 뒤에 있던 값들은 전부 인덱스번호가 -1씩 된다.

(List명.remove(객체); : 객체를 삭제)

List명.set(인덱스번호, 값); : 인덱스 번호 위치의 값을 수정한다.

 

노란밑줄의이유는 제네릭스(자료형지정)가 없기 때문이다.  없어도 이상없이 돌아간다.

그 외 메소드 

List명.addAll(다른 Collection객체); 다른  Collection객체를 리스트에 추가/

List명.contains(객체) : 주어진 객체가 저장되어있는지 여부(논리값)

List명.get(인덱스번호); : 인덱스 번호에 있는 값 리턴

List명.isEmpty(); : 객체가 비어있는지 조사

List명.size(); : 객체 크기(length()가 아니다)

List명.clear(); : 리스트를 비운다.

 

 

3. 정렬법

정렬 방법에는 값 하나만 비교 할 수 있는 Comparable과 동일 객체일 경우 여러 값중 하나의 값을 비교 할 수 있는 Complarator가 있다.

 

1)Comparable : 정렬하고자하는객체에Comparable를 상속받아 compareTo() 메소드를오버라이딩해기존의정렬 기준재정의.

한개의정렬만가능

Collections.sort(List list) 객체에 Comparable을 상속받아 compareTo 메소드 재정의를 통해 정렬 구현 (한 개의 정렬)

 

단 이경우 배열이 섞일 경우 형변환 오류가 걸린다.

또한 배열만 넣고 제네릭스를 지정해도 컴파일에서 부터 오류가 걸린다.

만약 객체를 비교 하고 싶을 경우 정보를 가져오는 객체 클래스에 Comparable<T>를 implements후 compareTo(T o) 메소드를 재정의 하여 사용 하면 된다.

 

메소드 사용시는 Collections.sort(list명);

 

 

 

 

2)Comparator : Comparator를상속 받는 정렬용 객체를 생성하여 compare() 메소드를 오버라이딩해 정렬기준 재정의.

 

 

ㄱ)비교연산자로 불가능한 경우(문자열)

 

 

ㄴ)비교연산자가 가능할 경우

사용

정렬결과

'JAVA > Collection' 카테고리의 다른 글

generics  (0) 2019.12.26
JAVAProperties  (0) 2019.12.21
Map  (0) 2019.12.21
Set  (0) 2019.12.21