AR삽질러

Java - Collection Framework (List Collection) 본문

JAVA

Java - Collection Framework (List Collection)

아랑팡팡 2023. 4. 14. 18:38
728x90

 

---------------------------------------------------------------------------------------------------------------------------------------------------

 

3. List Collection

 - List컬렉션은 배열과 비슷하게 객체를 인덱스로 관리한다.

 - 저장용량이 자동으로 증가하며 객체를 저장할 때 자동 인덱스가 부여된다.

 - List Collection은 객체 자체를 저장하는 것이 아니라 객체의 번지를 참조한다. 

Function Method Ex
객체추가 boolean add(E e) 주어진 객체를 맨 끝에 추가한다.
void add(int index, E element) 주어진 인덱스에 객체를 추가한다.
set(int index, E element) 주어진 인덱스에 저장된 객체를 주어진 객체로 바꾼다.
객체검색 boolean contains(Object o) 주어진 객체가 저장되어 있는지 여부를 검사한다.
E get(int index) 주어진 인덱스에 저장된 객체를 리턴한다.
isEmpty() 컬렉션이 비어 있는지 조사한다.
int size() 저장되어 있는 전체 객체 수를 리턴한다.
객체 삭제 void clear() 저장된 모든 객체를 삭제한다.
E remove(int index) 주어진 인덱스에 저장된 객체를 삭제한다.
boolean remove(Object o) 주어진 객체를 삭제한다.

- List Collection에 객체를 추가할 때에는 add()메소드를 사용하고 객체를 찾아올 때는 get()메소드를 사용한다. 객체삭제는 remove()메소드를 사용한다.

 

----------------------------------------------------------------------------------------------------------------------------------------------------

1) ArrayList<E>

- ArrayList는 List인터페이스의 대표적인 구현 클래스로 List인터페이스를 구현해 저장순서가 유지되고 중복이 허용된다.

package set;

import java.util.ArrayList;
import java.util.Iterator;

public class Array01 {
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		
		// list는 순서가 있는 자료형이다.
		// boolean add(E e) 주어진 객체를 맨 끝에 추가한다.
		list.add("거봉");
		list.add("수박");
		list.add("참외");
		list.add("딸기");
		list.add("사과");
		
		// boolean remove = 주어진 객체를 삭제한다.
		list.remove("사과");
		
		// 확장for문
		for(String name : list) {
			System.out.println(name);
		}System.out.println();
		
		// Iterator
		Iterator<String> it = list.iterator();
		while(it.hasNext()) {
			String name = it.next();
			System.out.println(name);
		}
		
		// toString = 모든객체 출력
		System.out.println(list.toString());
		
		// void add(int index, E element) = 주어진 인덱스에 객체를 추가한다.
		list.add(1, "두리안");
		
		// E remove(int index) = 주어진 인덱스에 저장된 객체를 삭제한다.
		list.remove(2);
		
		// E get(int index) = 주어진 인덱스에 저장된 객체를 리턴한다.
		for(int i = 0; i < list.size(); i++) {
			String name = list.get(i);
			System.out.println(name);
		}
	}
}

 

2) Iterator(반복자)

- 컬렉션 프레임워크에서 저장된 요소를 읽어오는 방법을 표준화한것(인터페이스)

- List, Map, Set계엘에는 없다. (읽기전용)

- Iterator에서 하나의 객체를 가져올때는 next()메소드를 사용한다. next()메소드를 사용하기 전에 먼저 가져올 객체가 있는 확인한후 hasNext()메소드로 객체를 가져온다.

메소드 설명
hasNext() 가져올 객체가 있으면 true를 리턴, 없으면 false를 리턴
next() 컬렉션에서 다음 하나의 객체를 가져온다.
remove() next()로 읽어온 요소를 삭제한다.
package list;

import java.util.Iterator;
import java.util.LinkedList;

public class List03 {
	public static void main(String[] args) {
		LinkedList<String> list = new LinkedList<>();
		
		list.add("망고");
		list.add("수박");
		list.add("바나나");
		list.add("딸기");
		
		Iterator<String> iter = list.iterator(); // 반족자
		// Collection에 저장된 요소들을 읽어오는 방법을 표준화 한것
		// Iterator객체는 컬랙션 객체의 iterator 메소드를 호출하여 얻을 수 있다.
		
		while(iter.hasNext()) {
			// 요소가 있는지 확인후 있으면 true 없으면 false
			String str = iter.next(); // 요소를 하나씩 가져온다.
			System.out.println(str);
		}
		System.out.println();
		
		iter = list.iterator();
		// iterator는 1회성으로 필요하면 다시 객체를 얻어와야 한다.
		while(iter.hasNext()) {
			String str = iter.next();
			System.out.println(str);
			iter.remove(); // 컬렉션에 저장된 요소들을 지운다.
		}
		
		System.out.println(list.isEmpty());
	}
}

----------------------------------------------------------------------------------

 

연습문제

String 타입의 ArrayList를 생성한 후 아는 연애인 5명 이름을 넣어보자 이름을 향상된 for문과 일반 for문으로 출력하기

package list;

import java.util.ArrayList;

public class List02 {
	public static void main(String[] args) {
		
		// String 타입의 ArrayList를 생성한 후
		// 아는 연애인 5명 이름을 넣어보자
		// 이름을 향상된 for문과 일반 for문으로 출력하기
		
		ArrayList<String> list = new ArrayList<>();
		
		list.add("김연아");
		list.add("황정민");
		list.add("권나라");
		list.add("유재석");
		list.add("전소민");
		
		System.out.println("향상된for문");
		for(String name : list) {
			System.out.print(name + "\t");
		}
		System.out.println();
		System.out.println("일반for문");
		for(int i = 0; i < list.size(); i++) {
			System.out.println(i +1 + " : " + list.get(i));
		}
		
	}
}

 

 

728x90
반응형
LIST