ππ» Set
(1) μμμ μ μ₯ μμλ₯Ό μ μ§νμ§ μμ
(2) κ°μ μμμ μ€λ³΅ μ μ₯μ νμ©νμ§ μμ
- μ€λ³΅ x, μμ x μΈ μ§ν©
ππ» HashSet
- ν΄μ μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ κ²μ μλ λ§€μ° λΉ λ¦
- HashMap μΈμ€ν΄μ€λ₯Ό μ΄μ©νμ¬ μμλ₯Ό μ μ₯
- Setμ ꡬννλ―λ‘ μμ μκ΄ μμ΄ μ μ₯νκ³ μ€λ³΅ κ° μ μ₯ μν¨
- add( )λ₯Ό μ¬μ©νμ¬ μμλ₯Ό μΆκ°νλ©΄ κ²°κ³Όλ true, false ! μ¦, μλ€λ©΄ false λμΆ
package Mon;
import java.util.*;
public class HashSetTest {
public static void main(String[] args) {
HashSet<String> lan = new HashSet<String>();
lan.add("Apple");
lan.add("Banana");
lan.add("Melon");
lan.add("Strawberry");
lan.add("Tomato");
lan.add("Banana");
Iterator it = lan.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
//κ²°κ³Ό
Apple
Strawberry
Tomato
Banana //Setμ ꡬννλ―λ‘ μμ μκ΄ μμ΄ μ μ₯νκ³ μ€λ³΅ κ° μ μ₯ μν¨
Melon
ππ» TreeSet
- λ°μ΄ν°κ° μ λ ¬λ μνλ‘ μ μ₯λλ μ΄μ§ κ²μ νΈλ¦¬μ ννλ‘ μμ μ μ₯
- λ°μ΄ν°λ₯Ό μΆκ°νκ±°λ μ κ±°νλ λ± κΈ°λ³Έ λμ μκ° λΉ λ¦
- Setμ ꡬννλ―λ‘ μμ μκ΄ μμ΄ μ μ₯νκ³ μ€λ³΅ κ° μ μ₯ μν¨
- κ²°κ³Όκ° μ€λ¦μ°¨μμΌλ‘ μ λ ¬λ¨
package Mon;
import java.util.TreeSet;
public class TreeSetTEst {
public static void main(String[] args) {
TreeSet<String> tree = new TreeSet<>();
tree.add("Lemon Tree");
tree.add("Apple Tree");
tree.add("Christmas Tree");
System.out.println(tree);
System.out.println(tree.first());
System.out.println(tree.last());
System.out.println(tree.higher("Christmas"));
System.out.println(tree.subSet("Christmas","Lemon"));
}
}
//κ²°κ³Ό
[Apple Tree, Christmas Tree, Lemon Tree]
Apple Tree
Lemon Tree
Christmas Tree
[Christmas Tree]
π± subSet( E fromElement, toElement )
- μμ λ²μκ° fromElementμμ toElement μ μΈμΈ μ΄ μ§ν©μ λΆλΆλ³΄κΈ°λ₯Ό λ°ν
π± higher ( E e ) / lower ( E e )
- μ£Όμ΄μ§ μμλ³΄λ€ λ ν° μ§ν© / μμ μ§ν© μμλ₯Ό λ°ν
π‘ μ΄μ§ νμ νΈλ¦¬ Binary Search Tree
- νλμ λΆλͺ¨ λ Έλμ μ΅λ λ κ°μ μμ λ Έλμ μ°κ²°λλ μ΄μ§ νΈλ¦¬μ μΌμ’
- μ λ ¬κ³Ό κ²μμ νΉνλ μλ£ κ΅¬μ‘°
- λͺ¨λ μΌμͺ½ μμ κ°μ΄ λΆλͺ¨λ³΄λ€ μμ
- λͺ¨λ μ€λ₯Έμ‘± μμ κ°μ΄ λΆλͺ¨λ³΄λ€ νΌ
π HashSetκ³Ό TreeSetμ κ°μ₯ ν° μ°¨μ΄λ ! μ€λ¦μ°¨μ μ λ ¬ (TreeSet)
ππ» Comparableμ Comparator
- 컬λ μ μ μ λ ¬νκΈ° μν΄ μλ°μμ μ 곡νλ μΈν°νμ΄μ€
- Comparable : κ°μ²΄ κ° μΌλ°μ μ λ ¬ νμ μ, Comparable μΈν°νμ΄μ€ νμ₯ν΄μ μ λ ¬μ κΈ°μ€ μ μνλ compareTo() ꡬν
- Comparator : κ°μ²΄ κ° νΉμ ν μ λ ¬ νμ μ, Comparator μΈν°νμ΄μ€ νμ₯ν΄μ νΉμ κΈ°μ€μ μ μνλ compare() ꡬν
π Comparable κ³Ό Comparator μ μ°¨μ΄μ μ
1) μ λ ¬ κΈ°μ€μ΄ μΌλ°μ vs μΌλ°μ μ΄μ§ μλ
2) λ©μλκ° compareTo() vs compare()
ππ» Comparable μΈν°νμ΄μ€
- λ§€κ° λ³μμ μκΈ° μμ λΉκ΅ (λ§€κ°λ³μ vs μκΈ°μμ )
- κ°μ νμ μ μΈμ€ν΄μ€λ₯Ό μλ‘ λΉκ΅ν΄μΌλ§ νλ ν΄λμ€κ° ꡬννλ μΈν°νμ΄μ€
- compareTo( )λ‘ κ°μ²΄ μ€λ¦μ°¨μ μ λ ¬
→ λ κ°μ²΄κ° κ°μΌλ©΄ 0, λΉκ΅ κ°μ²΄κ° μμΌλ©΄ -, ν¬λ©΄ +
package Mon;
import java.util.*;
public class Salad implements Comparable<Salad> {
int number;
String kind;
String sauce;
public Salad(int number, String kind, String sauce) {
this.number = number;
this.kind = kind;
this.sauce = sauce;
}
public int compareTo(Salad salad) {
if(number > salad.number){
return 1;
} else if (number < salad.number) {
return -1;
} else {
return 0;
}
}
}
** a.compareTo(b)μΌ λ,
(1) a > b λΌλ©΄ 1μ λ°ν
(2) a == b λΌλ©΄ 0μ λ°ν
(3) a < b λΌλ©΄ -1μ λ°ν
package Mon;
import java.util.Set;
import java.util.TreeSet;
public class ComparableTest {
public static void main(String[] args) {
Set<Salad> food = new TreeSet<>();
Salad salad1 = new Salad(3, "Grilled Chicken","Oriental");
Salad salad2 = new Salad(2, "Salmon","Sriracha Mayo");
Salad salad3 = new Salad(1, "Shrimp","lemon");
food.add(salad1);
food.add(salad2);
food.add(salad3);
for(Salad salad : food){
System.out.println(salad.number + " " + salad.kind + " " + salad.sauce);
}
}
}
//κ²°κ³Ό
1 Shrimp lemon
2 Salmon Sriracha Mayo
3 Grilled Chicken Oriental
ππ» Comparator μΈν°νμ΄μ€
- λ§€κ° λ³μμΈ λ κ°μ²΄λ₯Ό λΉκ΅ (λ§€κ°λ³μ vs λ§€κ°λ³μ)
- μ¬μ©μκ° μ§μ Comparator μΈν°νμ΄μ€λ₯Ό ꡬννμ¬ Comparatorμ λ§λ€ μ μμ
- Comparable (κΈ°λ³Έ μ λ ¬ κΈ°μ€)μ΄ μλ λ€λ₯Έ κΈ°μ€μΌλ‘ μ λ ¬νκ³ μΆμ λ μ¬μ©
→ Comparableμμ μ΄λ¦μμΌλ‘ μ λ ¬μ μ΄λ―Έ νλλ° μ°λ΄μμΌλ‘ λ³΄κ³ μΆλ€λ©΄ λ§€ λ² compareToλ‘
μμ ν μ μκΈ°μ μ΄λ΄ λλ Comparator μ¬μ©νμ¬ νΉμ κΈ°μ€ μ€ μ μμ
- compare( )λ₯Ό μ€λ²λΌμ΄λ©
package Mon;
import java.util.Comparator;
public class SortNum implements Comparator<Salad2> {
public int compare(Salad2 s1, Salad2 s2){
return s1.number - s2.number;
}
}
- Comparatorμ΄ κ°κ³ μλ ν¨μ compare()λ₯Ό μ€λ²λΌμ΄λ© νμ¬ κ°μ²΄λ§μ μ λ ¬ 쑰건μΌλ‘ μ¬μ μ
- compare μ μ§μλ³μλ€μ λΉκ΅νλ©° μμλ©΄ μμ κ², μμλ©΄ ν° κ², 0μ΄λ©΄ κ°μ κ²μΌλ‘ νλ¨ν μ μμ
package Mon;
import java.util.ArrayList;
import java.util.Collections;
public class ComparatorTest {
public static void main(String[] args) {
ArrayList<Salad2> food = new ArrayList<>();
Salad2 salad1 = new Salad2(45, "Grilled Chicken", "Oriental");
Salad2 salad2 = new Salad2(98, "Salmon", "Sriracha Mayo");
Salad2 salad3 = new Salad2(23, "Shrimp", "lemon");
food.add(salad1);
food.add(salad2);
food.add(salad3);
for (Salad2 sal : food) {
System.out.println(sal.number + " " + sal.kind + " " + sal.sauce);
}
Collections.sort(food, new SortNum());
for (Salad2 sal : food) {
System.out.println(sal.number + " " + sal.kind + " " + sal.sauce);
}
}
}
- Comparator μΈν°νμ΄μ€λ₯Ό SortNum() ν΄λμ€λ‘ μ μνκ³ μ λ ¬ κΈ°μ€μ μ¬μ©
- μ λ ¬ν λλ λ°λμ λ§€κ°λ³μλ‘ μ λ ¬ κΈ°μ€μ μ 곡νκ±°λ λμ κ°μ²΄ μ체μ μΌλ‘ μ λ ¬ κΈ°μ€ κ΅¬νμ΄ νμ
//κ²°κ³Ό
45 Grilled Chicken Oriental
98 Salmon Sriracha Mayo
23 Shrimp lemon
23 Shrimp lemon
45 Grilled Chicken Oriental
98 Salmon Sriracha Mayo
π± 리μ€νΈ μ λ ¬ Collections.sort ( ) / list.sort( )
//μ€λ¦μ°¨μ
Collections.sort(list);
list.sort(Comparator.naturalOrder());
//λ΄λ¦Όμ°¨μ
Collections.reverse(list);
list.sort(Comparator.reverseOrder());
'Study > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[TIL] μλ£κ΅¬μ‘° (0) | 2022.05.18 |
---|---|
[TIL] Map<K, V> (0) | 2022.05.18 |
[TIL] List<E> (0) | 2022.05.17 |
[TIL] 컬λ μ νλ μμν¬ (0) | 2022.05.17 |
[TIL] μΆμν΄λμ€ vs μΈν°νμ΄μ€ (0) | 2022.05.15 |