본문 바로가기

Java

[Java] 32

iterator()

- 순서를 부여해주는 메소드

- Iterator<> 객체를 return한다.

1. hasNext()

- 다음 요소가 있다면 true, 없다면 false를 return한다.

2. next()

- 다음 요소를 return한다.

Iterator

- 컬렉션의 종류와 상관 없이 동일한 형태의 참조 방식을 유지할 수 있게 하기 위해 만들어진 인터페이스

- 클래스 별 데이터 참조 방식을 별도로 확인할 필요도 없고, 컬렉션 클래스의 교체로 인한 영향도 줄일 수 있다.

컬렉션 프레임워크(Collection Framework)

- Collection

(1) List

- 중복된 값을 저장할 수 있다.

- 수정, 삭제, 추가가 자유롭다.

- 순서가 존재한다.

- ArrayList, LinkedList, ... 사용 방법은 같지만 구현 방식에서 차이가 난다.

(2) Set

- 순서가 없다. 인덱스번호를 쓸 수 없다.

- 중복된 값을 넣을 수 없다.

- HashSet, TreeSet, ... 사용 방법은 같지만 구현 방식에서 차이가 난다.

 

 

 

 

실습(Iterator)

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

public class HashSetTest {
	public static void main(String[] args) {
		
		ArrayList<String> ar = new ArrayList<String>();
		ar.add("dd");
		ar.add("ddd");
		ar.add("dddd");
		ar.add("ddddd");
		
		Iterator<String> i = ar.iterator();
		
		while(i.hasNext()) {
			System.out.println(i.next());
		}
			
	}
}

 

결과

 

​​

실습(List)

1. List Interface를 이용하여 ArrayList와 LinkedList 객체 선언하기

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ListTest {
	public static void main(String[] args) {

		List<String> alist = new ArrayList<String>();  // up casting
		alist.add("안녕");
		System.out.println(alist);
		
		List<String> llist = new LinkedList<String>();  // up casting
		llist.add("안녕");
		System.out.println(llist);
		
	}
}

 

결과

 

실습(HashSet)

1. add() : 추가

import java.util.HashSet;

public class HashSetTest {
	public static void main(String[] args) {

		HashSet<String> fruits = new HashSet<String>();

		fruits.add("사과");
		fruits.add("바나나");
		fruits.add("망고");
		fruits.add("사과");  // 중복된 값은 추가되지 않는다.

		System.out.println(fruits);  // 순서 상관없이 무작위로 출력된다.
	
	}
}

 

결과

 

 

​​

2. size() : 개수

import java.util.HashSet;

public class HashSetTest {
	public static void main(String[] args) {

		HashSet<String> fruits = new HashSet<String>();

		fruits.add("사과");
		fruits.add("바나나");
		fruits.add("망고");
		fruits.add("사과");

		System.out.println(fruits.size());
	
	}
}

 

결과

 

3. Iterator

import java.util.HashSet;
import java.util.Iterator;

public class HashSetTest {
	public static void main(String[] args) {

		HashSet<String> fruits = new HashSet<String>();

		fruits.add("사과");
		fruits.add("바나나");
		fruits.add("망고");
		fruits.add("사과");

				
		// iterator() : 순서를 부여해준다.
		Iterator<String> iter = fruits.iterator();
		
		// hasNext() : 다음 요소가 있다면 true, 없다면 false를 return
		while(iter.hasNext()) {
			// next() : 다음 요소를 return
			System.out.println(iter.next());
		}
		
		for (String fruit : fruits) {
			System.out.println(fruit);
		}
	
	}
}

 

결과

 

'Java' 카테고리의 다른 글

[Java] 34  (0) 2022.02.05
[Java] 33  (0) 2022.02.03
[Java] 31  (0) 2022.02.01
[Java] 30  (0) 2022.01.31
[Java] 29  (0) 2022.01.30