본문 바로가기

2023.11.21-2024.05.31

231221 JAVA Set01(컬렉션 - set)

package com.sukgi.coll;

//List : 순서 있지요?

 

import java.util.ArrayList;

 

//Set : 순서가 없어요.

//Map

 

import java.util.HashSet;

import java.util.Iterator;

import java.util.List;

import java.util.Set;

 

public class Set01 {

public static void main(String[] args) {

 

Set<String> set = new HashSet<String>();

set.add("홍길동");

set.add("김길동");

set.add("이길동");

set.add("박길동");

set.add("최길동");

set.add("홍길동");

 

System.out.println(set);// 중복 출력되지 않아요

System.out.println(set.size());

// get, 정렬 없어요

System.out.println("===============================");

 

// 로또?

 

Set<Integer> num = new HashSet<Integer>();

while (num.size() < 6) {

int i = (int) (Math.random() * 45 + 1);

num.add(i);

}

System.out.println(num);// [3, 35, 4, 9, 28, 30]

System.out.println("===============================");

 

// set을 list로 만들어서 출력하기

List<Integer> list2 = new ArrayList<>(num);

System.out.println(list2);

 

for (int i = 0; i < list2.size(); i++) {

System.out.println(list2.get(i));

 

}

System.out.println("===============================");

// foreach 출력하기

for (Integer integer : list2) {

System.out.println(integer);

}

System.out.println("===============================");

 

// Iterator

Iterator<Integer> iter = num.iterator();

 

while (iter.hasNext()) {

Integer integer = (Integer) iter.next();

System.out.println(integer);

}

/*

* 반복자

* 컬렉션 인터페이스의 interator()메소드는 Iterator를 리턴합니다.

* Iterator는 Enumeration인터페이스와 비슷하나 Enumeration보다

* 나중에 만들어졌습니다.

*

* */

 

System.out.println("===============================");

List<String> names = new ArrayList<String>();

names.add("홍길동");

names.add("김길동");

names.add("최길동");

names.add("홍길동");

names.add("홍길동");

names.add("홍길동");

names.add("이길동");

names.add("홍길동");

names.add("홍길동");

 

System.out.println(names.size()); //홍길동 중복 포함 9명

 

System.out.println("===============================");

Set<String> names2 = new HashSet<String>(names);

 

System.out.println(names2.size());//홍길동 중복 제거 후 9개에서 4개 남음

System.out.println(names2);//홍길동 중복 제거 후 9개에서 4개 남음

 

}

}

 

  • HashSet 복사 및 중복 제거:
    • Set<String> names2 = new HashSet<>(names);를 사용하여 기존 names의 값을 가진 새로운 HashSet을 만듭니다.
    • 이로써 중복된 값이 제거됩니다.