JAVA/java
[JAVA] 컬λ μ νλ μμν¬ : Set (μ€λ³΅X, μμX)
congs
2023. 3. 26. 11:05
π Set
- κ°μ νλμ© μ μ₯
- μμλ₯Ό 보μ₯νμ§x ⇒ indexλ²μ§κ° μμ
- μ€λ³΅ νμ© X
- HashSet<μλ£ν> set = new HashSet<>();
- index (λ²μ§) μμ = μμ보μ₯x
- get/set x
- μ λ ¬ : μμκ° μμ΄μ μ λ ¬μ΄ μλκΈ° λλ¬Έμ, set => listλ‘ λ³νν΄μ μ λ ¬ -> μ¬μ©
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
public class Set01 {
public static void main(String[] args) {
/* Set μμ보μ₯x μ€λ³΅x
* HashSet
* - νΉμ§: index(λ²μ§)κ° μμ
* - get/setμ΄ μμ
* */
HashSet<String> set = new HashSet<String>();
set.add("apple");
set.add("banana");
set.add("apple");
//μμκ° μμ§λ§, λ€μ΄μ€λ μμμλ°λΌ κ°μ λ¬Έμκ° λ€μ΄μ€λ©΄ λ¨Όμ λ€μ΄μ¨ λ¬Έμκ° μ¬λΌμ§
set.add("peach");
set.add("νκΈΈλ");
set.add("μ΄μμ ");
System.out.println(set);
//μΆλ ₯μ μμμμ΄ μΆλ ₯λ¨
//====================================================================
// μΆλ ₯
for(String tmp: set) {
System.out.println(tmp + " ");
}
Iterator<String> it = set.iterator();
while(it.hasNext());
String tmp = it.next();
System.out.println(tmp + " ");
//------------------------------------------------------------------------------------------
//setμ λ ¬ : μμκ° μμ΄μ μ λ ¬μ΄ μλκΈ° λλ¬Έμ, set => listλ‘ λ³νν΄μ μ λ ¬ -> μ¬μ©
List<String> list = new ArrayList<String>(set);
Collections.sort(list);
System.out.println(list);
//λ΄λ¦Όμ°¨μ
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
});
System.out.println(list);
}
}
π TreeSet : μλμΌλ‘ setλ°°μ΄μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬
- first κ°μ₯ μμ μλ κ°
- last κ°μ₯ λ€μ μλ κ°
- tailSet(a) aλ³΄λ€ λ€μ μλ κ°(ν°κ°)
- headset(a) aλ³΄λ€ μμ μλ κ°(μμκ°)
- subSet(a,b) a~b-1μ¬μ΄μ μλ κ°
- λ΄λ¦Όμ°¨μ μ 리
NavigableSet<Integer> desSet = set.descendingSet();
System.out.println(desSet);
import java.util.HashSet;
import java.util.NavigableSet;
import java.util.Set;
import java.util.TreeSet;
public class SetEx02 {
public static void main(String[] args) {
int[] score = {80, 98, 45, 95, 62, 57, 90};
TreeSet<Integer> set = new TreeSet<>();
//μ μλ€ μ€ κ°μ₯ ν° μ μμ κ°μ₯ μμ μ μ μΆλ ₯
for(int i=0; i<score.length; i++) {
set.add(score[i]);
}
System.out.println(set);
System.out.println("κ°μ₯ μμ μ μ: "+set.first()); // κ°μ₯ μμ μλ κ°
System.out.println("κ°μ₯ ν° μ μ: "+set.last()); // κ°μ₯ λ€μ μλ κ°
System.out.println("==================================");
//headSet : μ§μ λ κ°μ²΄λ³΄λ€ μμ κ° μΆλ ₯, tailSet: μ§μ λ κ°μ²΄λ³΄λ€ ν°κ° μΆλ ₯
System.out.println(set.tailSet(80));//80λ³΄λ€ ν° κ° (λ€μ μλ κ°)
System.out.println(set.headSet(80));//80λ³΄λ€ μμ κ°(μμ μλ κ°)
//subSet(a,b) : aν¬ν¨,bλ―Έν¬ν¨! λ μμ λ²μ μμ μλ κ°
System.out.println(set.subSet(70, 90)); //70~89μ¬μ΄μ κ°
//<λ΄λ¦Όμ°¨μ Set>
NavigableSet<Integer> desSet = set.descendingSet();
System.out.println(desSet);
}
}