본문 바로가기
☕Java/Java 기본

[20210521] Java 자료구조, 반복자

by 캔 2021. 5. 21.

자바의 자료구조에는 Set, List, Map이 있다.

//set 예제

package Day9;

import java.util.*;

public class practice {
	public static void main(String[] args) {
		//Set
		Set<String> set = new HashSet<String>();
		set.add("Lee");
		set.add("Yoon");
		set.add("Park");
		set.add("Choi");
		set.add("Jeon");
		set.add("Roh");
		set.add("Moon");
		System.out.println(set);
		set.remove("choi");
		
		Iterator<String> iter = set.iterator();//set의 요소를 출력하기 위해 iterator 사용
		while (iter.hasNext() == true) {
			System.out.println(iter.next());
		}
	}
}

Set의 경우에는 순서가 없고, 중복이 불가능한 '집합' 구조이다. 추가 시 add(), 삭제 시 remove() 메서드를 사용한다.

//list 예제

package Day9;

import java.util.*;

public class practice {
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>();
		list.add("Lee");
		list.add("Yoon");
		list.add("Park");
		list.add("Choi");
		list.add("Jeon");
		list.add("Roh");
		list.add("Moon");
		System.out.println(list);
		list.remove("choi");
		
		Iterator<String> iter2 = list.iterator();//list의 요소를 출력하기 위해 iterator 사용
		while (iter.hasNext() == true) {
			System.out.println(iter2.next());
		}
	}
}

List는 순서가 있고, 중복이 가능한 '목록' 구조이다. 추가 시 add(), 삭제 시 remove() 메서드를 사용한다.

//map 예제

package Day9;

import java.util.*;

public class practice {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("0", "Lee");
		map.put("1", "Yoon");
		map.put("2", "Park");
		
		map.put("3", "Choi");
		map.put("4", "Jeon");
		map.put("5", "Roh");
		map.put("6", "Moon");
		System.out.println(map);
		map.remove("choi");
		
		Iterator<String> iter3 = map.keySet().iterator();//map의 요소를 출력하기 위해 iterator 사용
		while (iter3.hasNext() == true) {
			System.out.println(iter3.next());
		}
		
	}
}

Map은 "key: value"(key에 해당하는 값은 value라는 의미)와 같은 형태의 "사전"형 구조이다. 추가 시 put(), 삭제 시 remove() 메서드를 사용한다.

 

세 예제에서 각 자료구조의 요소들을 출력하기 위해 'iterator'(열거자, 반복자)를 사용하였다. 반복자를 생성하면 반복자를 통하여 순차적으로 각 자료 구조의 요소들에 접근하는 것이 가능하다. Iterator 객체의 next()를 사용하면 자료구조의 다음 요소를 반환해준다. while문의 조건식 안에 있는 hasNext() 메서드는 다음 요소가 있는지 없는지를 반환하는 메서드이며, 반복자의 다음 요소를 가지고 있지 않을 때까지(hasNext() 메서드가 false값을 반환할 때까지) 반복자들이 가지고 있는 요소들을 출력한다.