๊ด€๋ฆฌ ๋ฉ”๋‰ด

ejyoo's ๊ฐœ๋ฐœ ๋…ธํŠธ

Set ๋ณธ๋ฌธ

BackEnd/Java

Set

ejyoovV 2021. 3. 7. 18:49

๐Ÿ’กSet ์˜ ํŠน์ง•

  - ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ˆœ์„œ๊ฐ€ ์—†์Œ.

  - ์ˆœ์„œ๊ฐ€ ์—†๋‹ค๋Š” ์˜๋ฏธ๋Š” ๋ฐ์ดํ„ฐ ์ถ”์ถœ ์‹œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋ƒ ์—†๋ƒ๋กœ ํŒ๋‹จํ•˜๋ฉด ๋” ํŽธํ•จ.

  - List ๊ฐ™์€ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Set์€ ๊ทธ๋ ‡์ง€ ์•Š์Œ.

 

๐Ÿ’กSet ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ : add()

import java.util.HashSet;
import java.util.Set;

public class Main {
	public static void main(String[] args) {
		Set hs = new HashSet();
		
		hs.add("DD");
		hs.add(100);
		hs.add(2);
		hs.add("AA");
		
		System.out.println("Set ๋ฐ์ดํ„ฐ : " + hs);
		System.out.println();
		
	}
	
}

๐Ÿ’กSet์˜  ์ค‘๋ณต ์ถ”๊ฐ€ ์ œ์–ด

- Set์˜  ํŠน์ง•์œผ๋กœ  ์ธํ•˜์—ฌ  ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์‹œ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”  ๊ฒฝ์šฐ  add์˜  ๊ฒฐ๊ณผ๋Š”  false๋ฅผ ๋ฐ˜ํ™˜ํ•จ

  ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด add์˜ ๊ฒฐ๊ณผ๋Š” true๋ฅผ ๋ฐ˜ํ™˜ํ•จ

import java.util.HashSet;
import java.util.Set;

public class Main {
	public static void main(String[] args) {
		Set hs = new HashSet();
		
		hs.add("DD");
		hs.add(100);
		hs.add(2);
		hs.add("AA");
		
		System.out.println("Set ๋ฐ์ดํ„ฐ : " + hs);
		System.out.println();
		
		boolean isAdd = hs.add("DD");
		System.out.println("์ค‘๋ณต ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๊ฒฐ๊ณผ : " + isAdd);
		
		isAdd = hs.add("BB");
		System.out.println("์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๊ฒฐ๊ณผ : " + isAdd);
		
	}
	
}

๐Ÿ’กSet์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ • : ๋ฉ”์„œ๋“œ ์—†์Œ

- Set์—๋Š” ์ˆ˜์ •ํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

- remove() -> add()

 

๐Ÿ’กSet์˜ ๋ฐ์ดํ„ฐ  ์‚ญ์ œ :  remove()

import java.util.HashSet;
import java.util.Set;

public class Main {
	public static void main(String[] args) {
		Set hs = new HashSet();
		
		hs.add("DD");
		hs.add(100);
		hs.add(2);
		hs.add("AA");
		
		System.out.println("Set ๋ฐ์ดํ„ฐ ์‚ญ์ œ  : " + hs);
		System.out.println();
		
		hs.remove("DD");
		System.out.println("Set ๋ฐ์ดํ„ฐ ์‚ญ์ œ ํ›„ : " + hs);
		
	}
	
}

 

๐Ÿ’กSet ๋ฐ์ดํ„ฐ ์ „์ฒด ์‚ญ์ œ : clear()

import java.util.HashSet;
import java.util.Set;

public class Main {
	public static void main(String[] args) {
		Set hs = new HashSet();
		
		hs.add("DD");
		hs.add(100);
		hs.add(2);
		hs.add("AA");
		
		System.out.println("Set ๋ฐ์ดํ„ฐ ์‚ญ์ œ  : " + hs);
		System.out.println();
		
		hs.clear();
		System.out.println("Set ๋ฐ์ดํ„ฐ ์‚ญ์ œ ํ›„ : " + hs);
		
	}
	
}

๐Ÿ’กSet ์ž๋ฃŒ ํฌ๊ธฐ ์ถœ๋ ฅ  : size()

import java.util.HashSet;
import java.util.Set;

public class Main {
	public static void main(String[] args) {
		Set hs = new HashSet();
		
		hs.add("DD");
		hs.add(100);
		hs.add(2);
		hs.add("AA");
		
		System.out.println("hs์˜ ์ž๋ฃŒ ์ถœ๋ ฅ : " + hs);
		System.out.println("hs์˜ ํฌ๊ธฐ ์ถœ๋ ฅ : " + hs.size());
		
	}
}

 

๐Ÿ’กSet ๋ฐ์ดํ„ฐ ์ถ”์ถœ

- ์ˆœ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— List์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์—†์Œ.

- ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” Iterator ์—ด๊ฑฐ์ž๋กœ ์ถ”์ถœํ•ด์•ผ ํ•จ.(Set๋‚ด์— Iterator ๊ฐ์ฒด๋ฅผ ๊ฐ–๊ณ ์žˆ์Œ)

- Set์˜ ๋ฐ์ดํ„ฐ๋ฅผ Iterator ๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค Iterator ๋ณ€์ˆ˜์— ๋‹ด๋Š”๋‹ค.

- while ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ“iter.hasNext() : iter์— ๋‹ค์Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•จ.

๐Ÿ“iter.next() : iter๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ปค์„œ๋ฅผ ๋‹ค์Œ์œผ๋กœ ์˜ฎ๊น€

 

๐Ÿ“์ฝ”๋“œ ์„ค๋ช…

Iterator ๋ณ€์ˆ˜ iter ์— Set ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด hs๋ฅผ iterator ํ™” ํ•˜์—ฌ ๋‹ด๋Š”๋‹ค.

iter๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

while ๋ฌธ์—์„œ iter์˜ ๋‹ค์Œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. (iter.hasNext())

iter์˜ ์ปค์„œ๋ฅผ 1๋กœ ์œ„์น˜์‹œํ‚ค๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. (iter.next())

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

public class Main {
	public static void main(String[] args) {
		Set hs = new HashSet();
		
		hs.add("DD");
		hs.add(100);
		hs.add(2);
		hs.add("AA");
		
		Iterator iter = hs.iterator();
		
		while(iter.hasNext()) {
			System.out.println(iter.next());
		}
		
	}
}

๐Ÿ’กSet  ํ™œ์šฉ - ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋‚œ์ˆ˜ 5๊ฐœ ๋งŒ๋“ค๊ธฐ

Set์„ ํ™œ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

์ด ํŠน์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋‚œ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

Set ๋ณ€์ˆ˜์˜ size๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚œ์ˆ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค

import java.util.HashSet;
import java.util.Set;

public class Main {
	public static void main(String[] args) {
		Set<Integer> intRnd = new HashSet<Integer>();
			
		while(intRnd.size() < 5) {
			int num = (int)(Math.random() * 100 + 1);
			intRnd.add(num);
		}
		
		System.out.println("๋งŒ๋“ค์–ด์ง„ ๋‚œ์ˆ˜๋“ค : " + intRnd);
	}
}

๐Ÿ’ก๋‹ค๋ฅธ ์œ ํ˜•์˜ Collection ๊ฐ์ฒด๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ - Set  -> ArrayList

Collection ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณ€๊ฒฝํ•  ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ธ์ž๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Main {
	public static void main(String[] args) {
		Set<Integer> intRnd = new HashSet<Integer>();
			
		while(intRnd.size() < 5) {
			int num = (int)(Math.random() * 100 + 1);
			intRnd.add(num);
		}
		
		System.out.println("๋งŒ๋“ค์–ด์ง„ ๋‚œ์ˆ˜๋“ค : " + intRnd);
		
		List<Integer> intRndList = new ArrayList<Integer>(intRnd);
		System.out.println("List ๋ชฉ๋ก ์ถœ๋ ฅ ");
		
		for(Integer num : intRndList) {
			System.out.println(num);
		}
	}
}