본문 바로가기
Programming/Java

7장. 컬렉션과 제네릭 #2 ArrayList 컬렉션, Iterator 인터페이스

by jaegom 2020. 6. 16.

다양한 제네릭

1. ArrayList<E> (배열 컬렉션)

  • import java.util.ArrayList
  • 가변 크기 배열 컬렉션
  • 삽입(add), 검색(get), 삭제(remove)가 자유롭다. (기본 메소드)

삽입요소

  1. 객체, null
  2. 기본타입은 Wrapper 객체로 만들어 삽입 ->이제 JVM이 알아서 기본타입들 박싱해줌.
  • 벡터와 달리 스레드 동기화 불가능

ex) ArrayList a = new ArrayList(7);
a.add("Hello") a.add("안녕") a.add(2,"삽입") a.get(1) a.remove(1)
a.size(); //요소 개수
a.capacticy 안됨.

2. Iterator<E> : Vector, ArrayList, LinkedList 제네릭이 상속받는 인터페이스. 컬렉션이 아니다!

  • 리스트 구조의 컬렉션들에서 요소의 순차검색을 위한 메소드를 포함하는 인터페이스이다.

ex)
Vector v = new Vector();
Iterator it = v.iterator(); // 인터페이스 레퍼런스에 iterator메소드의 반환값을 연결
// iterator메소드는 Iterator객체를 반환한다.
// Iterator객체를 이용하여 인덱스 없이 컬렉션을 순차적으로 검색가능.
while(it.hasNext()) { // 모든 요소 방문. 요소가 있으면 true리턴
int n = it.next(); // 다음 요소 리턴
}

import java.util.*;
public class IteratorEx {
	public static void main(String[] args) {
		Vector<Integer> v = new Vector<Integer>(); // 정수 값만 다루는 제네릭 벡터 생성
		v.add(5); // 5 삽입
		v.add(4); // 4 삽입
		v.add(-1); // -1 삽입
		v.add(2, 100); // 4와 -1 사이에 정수 100 삽입
	
		// Iterator를 이용한 모든 정수 출력하기
		Iterator<Integer> it = v.iterator(); 
		while(it.hasNext()) {
			int n = it.next();
			System.out.println(n);
		}

		// Iterator를 이용하여 모든 정수 더하기
		int sum = 0;
		it = v.iterator(); // Iterator 객체 얻기
		while(it.hasNext()) {
			int n = it.next();
			sum += n; 
		}
		System.out.println("벡터에 있는 정수 합 : " + sum);
	}
}
}

>>> 
5
4
100
-1
벡터에 있는 정수 합 : 108

댓글