어제 사용해본 List와 Stack & Queue와 비슷한 느낌이다.
메서드는 add() , contain(), containsAll(), retainAll()
등을 사용해보았고, 어제 사용한 clear()과 같이 전체 삭제메서드도 사용해 보았고, iterator() 메서드를 이용해서 요소를 전부 뽑아내는 것은 거의 비슷했기에 간단히 실습해 보았다.
Set은 순서와 상관없이 삽입된다는 것을 알수 있었다.
public class JavaEx31 { public static void main(String[] args) { // 순서(index) (X) // 요소 중복 불허용 ! Set<String> set = new HashSet<>(); set.add("java"); set.add("java"); set.add("c"); set.add("python"); set.add("python"); set.add("c++"); set.add("JSP"); Set<String> set2 = new HashSet<>(); set.add("java"); set.add("java"); set.add("c"); set.add("python"); set.add("python"); set.add("c++"); set.add("JSP"); System.out.println("set의 크기 : " + set.size()); // Set => List // List<String> list = new ArrayList<>(); // list.addAll(set); // 전체 요소 나열(조회) for(String s : set) { System.out.print(s + " "); } System.out.println(); Iterator<String> it = set.iterator(); while(it.hasNext()) { System.out.print(it.next() + " "); } System.out.println(); set.forEach(x -> System.out.print(x + " ")); // set.forEach(System.out::print); System.out.println(); // 요소 포함 여부 System.out.println("요소 포함 여부 : " + set.contains("java")); System.out.println("요소 포함 여부 : " + set.containsAll(Arrays.asList("java","JSP"))); System.out.println("요소 포함 여부 : " + set.containsAll(Arrays.asList("java","Servlet"))); System.out.println("동등 여부 : " + set.equals(set2)); // 요소의 삭제 // System.out.println(set.remove("java")); // System.out.println(set.removeAll(Arrays.asList("java","python"))); // set.clear(); // 교집합(공통요소)만 남김 // set.retainAll(Arrays.asList("java","python","Servlet")); // set.forEach(x -> System.out.print(x + " ")); // 배열로 치환 String[] strArr = new String[set.size()]; strArr = set.toArray(strArr); System.out.println("첫번째 요소 : " + strArr[0]); } }