Collection - List 계열 ------- ( ArrayList )

양혜정·2024년 2월 12일
0

Begin_java

목록 보기
62/71

Array(배열) 와 Collection (자료구조) 의 차이

Array :

  • 크기 한정
  • 배열에 선언되어진 동일한 타입의 데이터만 입력 가능
  • 동일한 데이터 타입만 들어가는 저장소
  • 저장 크기 변경 불가능
  • 배열의 크기 : .length

Collection :

  • 크기 무한정
  • 객체이면 무엇이든 입력 가능
  • 객체타입 모두 들어가는 저장소
  • 저장 크기 무한
  • list의 크기 : .size

웹에서 가장 많이 사용하는 대표적인 Collection 타입

(Single Thread 방식)
-> List 계열 : ArrayList
-> Map 계열 : HashMap

Single Thread 의 특징 : 가볍고 빠르다.


이전 방식

List my_list = new ArrayList();
my_list.add(new String ("이순신"));
my_list.add("엄정화")					// Auto-Boxing
my_list.add(new Integer(98));			// jdk 1.8 이전
my_list.add(Integer.valueOf(100));		// jdk 1.8 이후
my_list.add(80);						// Auto-Boxing
my_list.add(new Member());				// 객체이면 가능 O

// 사용방법
System.out.println("my_list 의 크기 : " + my_list.size());

System.out.println("\n===my_list에 저장되어진 데이터 중" 
							+ "정수데이터만 출력하기 ===\n");
for(int i=0; i<my_list.size(); i++) {
	if(my_list.get(i) instanceof Integer)
    // A instanceof B => A가 B라면 true
    	System.out.println(my_list.get(i));
}	// end of for--------------

이전 방식의 문제점

  • instanceof 뒤에 적는 것을 정확히 예측하기 힘들어 불편
    (이를 해결하기 위해, jdk 1.5 부터 Generic 방식이 나옴)

Generic 타입

  • 별도의 형 변환(Casting) 필요없이 <> 사이에 선언하였던 객체자료형으로 검출 가능
    Ex)
List<String> str_list = new ArrayList<>();
str_list.add("마동석");
str_list.add(1234);		// 오류 -> String 타입이 아니다.
str_list.add(new Member());	// 오류 -> String 타입이 아니다.

ArrayList

  1. 출력시 저장된 순서대로 나온다.
  2. 중복된 데이터를 저장할 수 있다.
  3. 추가방법 ' .add '

Ex)

// Member 클래스의 객체만을 저장할 수 있는 ArrayList 에 
// 객체 mbrList 를 생성한다.
List<Member> mbrList = new ArrayList<Member>();

// Member 클래스의 객체를 생성하여 mbrList에 저장한다.
mbrList.add(new Member
("youjs","Qwer1234$","유재석","7209101"));
mbrList.add(new Member
("eom","Qwer1234$","엄정화","6808152"));
Member mem1 = new Member
("youjs","Qwer1234$","유재석","7209101");
// 메모리상 주소가 다르다.

// mbrList에 저장된 회원들의 정보 출력하기
for(int i=0; i<mbrList.size(); i++) {
	// mbrList.get(i).getInfo();	// getInfo 메소드 이용
    // 또는
    System.out.println(mbrList.get(i));	// toString() 이용
}	// end of for----------

// Member 클래스
public void getInfo() {
	System.out.println( //~~~);
}	// end of public void getInfo()---------------

public String toString() {
	return // ~~~
} 	// end of public String toString()--------

- ArrayList 타입인 mbrList에 저장되어진 Member 객체 추가

mbrList.add(3,new Member
		("seokj","Qwer1234$", "서강준", "9901051"));
// 3번 index에 추가하기
// index 번호가 없을 시 맨뒤에 추가된다.

- ArrayList 타입인 mbrList에 저장되어진 Member 객체 삭제

mbrList.remove(삭제할 Member 객체의 인덱스번호);

정리

my.day18.a.collection
-> Member, ArrayList_main_1, ArrayList_main_2, LinkedList_main_3

0개의 댓글