자바의 자료구조에는 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값을 반환할 때까지) 반복자들이 가지고 있는 요소들을 출력한다.
'☕Java > Java 기본' 카테고리의 다른 글
[20210524] 문자 스트림과 바이트 스트림 (0) | 2021.05.24 |
---|---|
[20210521] Java 예외 처리 (0) | 2021.05.21 |
Java 클래스, 추상클래스, 인터페이스 (0) | 2021.05.21 |
Java 조건문, 반복문, 탈출문 (0) | 2021.05.21 |
Java 변수와 배열 (0) | 2021.05.20 |