ืื ืืชื ืงืืจื ืืืืจ ืื, ืกืืืจ ืืื ืื ืฉืืชื ืืืืจ ืืช ืืืฉืง ืืืคื ืืืืื ื ืืชื ืืืืฉื ืืจืืื. ืื ืื, ืื ืืื ืืืื
. ืืืื ื ืืืจ ืขื ืืืืคืืื ืื ืฉื ืืืืฉืื ืฉื Java TreeMap, ืืืืชืจ ืืืืง, ืืืฆื ืืื ืฉืื ื ื-HashMap ืืืืฆื ืืืฉืชืืฉ ืื ื ืืื.
ืืคื ืฉืืชื ืืืื ืืจืืืช, ืืฉืืขืืจืื ืืืื ืืฉ ืืจืื ืืืืฉืืชืฃ, ืืื ืืฉ ืื ืืื ืืืืืื. ืืืจืืช ืฉืืืืืงื TreeMap ืืื ืืืืืื ืช ืืืืชืจ, ืืื ืื ืชืืื ืืืืื ืืืืกื null ืืืคืชื. ืื ืืกืฃ, ืืืืฉื ืืืืื ืืื ืฉื TreeMap ืืืงืืช ืืช ืคืจืง ืืืื ืืืจืื ืืืืชืจ. ืืื, ืื ืืื ื ืฆืจืื ืืืืกื ื ืชืื ืื ืืกืืจ ืืกืืืจ ืืืฉืื, โโืขืืืฃ ืืืฉืชืืฉ ื-HashMap ืื ื-LinkedHashMap .
ืื ืืื ืืขืช ืขืชื! ืื ื ืืงืืื ืฉืฉืืขืืจ TreeMap ืืจืืจ ืื ืขืืฉืื, ืืฉืชืืืฉื ืืืชื ืืจืืื ืืคืชืจืื ืืฉืืืืช ืงืืืื ืืขืฉืืืช.
ืืฉืืืืช TreeMap, HashMap ื-LinkedHashMap
ืืืืืืฉ ืื ืคืืฅ ืืืืชืจ ืฉื ืืืฉืง Map ืืื HashMap. ืื ืงื ืืฉืืืืฉ ืืืืืื ืืืฉื ืืืืจื ืื ืชืื ืื, ืื ืฉืืื ืืืืขืื ืืืื ืืืืชืจ ืืคืชืจืื ืจืื ืืืขืืืช. ืจืื, ืืื ืื ืืืื. ืืคืขืืื ืืชื ืฆืจืื ืืืืกื ื ืชืื ืื ืืฆืืจื ืืืื ืืช ืืืืืืช ืืกืืื ืื ืืื ืืื. ืืืงืจื ืื, ืืืฉืื ื ืืกืฃ ืฉื ืืืฉืง ืืืคื (TreeMap) ืืืืข ืืขืืจื. TreeMap ืืืืฉืืช ืืช ืืืฉืง NavigableMap , ืฉืืืจืฉ ืืช SortedMap , ืฉืืชืืจื ืืืจืฉ ืืช ืืืฉืง ืืืคื. ืขื ืืื ืืืืขืช ืืืฉืงื NavigableMap ื- SortedMap , TreeMap ืืงืื ืคืื ืงืฆืืื ืืืืช ื ืืกืคืช ืฉืืื ื ืืืื ื ื-HashMap, ืื ืืื ืืฉืืืช ืืืืจ ืืืืื ืช ืืืฆืืขืื. ืืฉ ืื ืืช ืืืืืงื LinkedHashMap , ืืืืคืฉืจืช ืื ืืืืกื ื ืชืื ืื ืืกืืจ ืืกืืื (ืืกืืจ ืฉืื ืืืกืืคืื ืืืชื ืืืคื). ืืื ืืืืื ืืช ืืืืืืื ืืื ืฉืืืฉืช ืืืืืงืืช ืืืื, ืขืืื ืืืืื ืื:ืืคืช ืืืืื | LinkedHashMap | ืืคืช ืขืฅ | |
---|---|---|---|
ืืืื ืช ื ืชืื ืื | ืึทืงืจึทืึดื. ืืื ืขืจืืื ืฉืืกืืจ ืืืฉืืจ ืืืืจื ืืื. | ืืคื ืกืืจ ืืืกืคืช ืื ืชืื ืื | ืืกืืจ ืขืืื ืื ืืืชืืกืก ืขื ืืฉืืื ืืืืืจ |
ืืืจืืืืช ืืืื | O(1) | O(1) | O(log(n)) |
ืืืฉืงืื ืืืืฉืืื | ืึทืคึผึธื | ืึทืคึผึธื | NavigableMap SortedMap Map |
ืืื ื ื ืชืื ืื | ืืืืื | ืืืืื | ืขืฅ ืืืื-ืฉืืืจ |
ืชืืืื ืืืคืชื null? | ืื | ืื | ืื, ืื ืืชื ืืฉืชืืฉ ื-comparator, ืื ืืืคืฉืจ null |
ืคืชืื ืืืื? | ืื | ืื | ืื |
ืขืฅ ืืืื-ืฉืืืจ
ืืื ืฉืืชื ืื ืฉืืชืืช ืืืืกื ืืื ืืข, TreeMap ืืฉืชืืฉ ืืืื ื ื ืชืื ืื ืื ืงืจื ืขืฅ ืืืื-ืฉืืืจ. ืืืกืื ื ืชืื ืื ืืืื ื ืื ืืื ืืืืืง ืื ืฉืืกืคืง ืกืืจ ื ืชืื ืื. ืื ืืืื ืขืฅ ืื? ืืืื ื ืืื ืืช ืื! ืชืืจ ืืขืฆืื ืฉืืชื ืฆืจืื ืืืืกื ืืืืืช ืืกืคืจ-ืืืจืืืช. ืืืกืคืจืื 16, 20, 52, 55, 61, 65, 71, 76, 81, 85, 90, 93 ื-101 ืืืื ืืคืชืืืช. ืื ืืชื ืืืืกื ื ืชืื ืื ืืจืฉืืื ืืกืืจืชืืช ืืืชื ืฆืจืื ืืืฆืื ืืช ืืืืื ื ืขื ืืงืฉ 101, ืชืฆืืจื ืืขืืืจ ืืจื ืื 13 ืืืืื ืืื ืืื ืืืฆืื ืืืชื. ืขืืืจ 13 ืืืื ืืื, ืื ืื ืขื ืืื ืืืื, ืืื ืืฉืขืืืืื ืขื ืืืืืื, ืืืื ืื ื ืืขืืืช ืืืืืืช. ืืื ืืคืชืืจ ืืช ืืืขืืืช ืืืื, ืืชืื ืชืื ืืฉืชืืฉืื ืืืื ื ื ืชืื ืื ืงืฆืช ืืืชืจ ืืืจืืืื. ืืื ื ืื ืก ืืขืฅ ืืืืื-ืฉืืืจ ืืืื! ืืืคืืฉ ืืืื ื ืืชืืื ืืฉืืจืฉ ืืขืฅ, ืฉืืืงืจื ืฉืื ื ืืื 61. ืืืืจ ืืื ื ืฉืืื ืืช ืขืจืื ืืฆืืืช ืขื ืืขืจื ืฉืื ื ืืืคืฉืื. ืื ืืขืจื ืฉืื ื ืคืืืช, ืื ืื ืื ื ืืืืืื ืฉืืืื; ืื ืืื ืืืื ืืืชืจ, ืื ืื ืื ื ืืืืืื ืืืื ื. ืชืืืื ืื ืืืืจ ืขื ืขืฆืื ืขื ืฉืื ื ืืืฆืืื ืืช ืืขืจื ืืจืฆืื ืื ื ืชืงืืื ืืืืื ื ืฉืขืจืื ืจืืง (ืขืื ืฉื ืืขืฅ). ืืฆืืขืื ืืืื ืืฉืืืจ ืืฉืืฉืื ืืื ืืคืฉื ืืช ืื ืืืื ืืืืืื ืืขืฅ. ืืฉื ื ืืืืื ืฉืชืืื ืืฉ ืืืงืคืื ืขืืืื ืืขืช ืื ืืืช ืขืฅ ืืืื-ืฉืืืจ:- ืืฉืืจืฉ ืืืื ืืืืืช ืฉืืืจ.
- ืขืื ืืขืฅ ืืืืืื ืืืืืช ืฉืืืจืื.
- ืืฆืืืช ืืืื ืืืืืื ืืืืืช ืฉื ื ืฆืืชืื ืฆืืฆืืื ืฉืืืจืื.
- ืืฆืืืช ืฉืืืจ ืืืืืื ืืืืืช ืฆืืชืื ืฆืืฆืืื ืืื ืฆืืข.
- ื ืชืื ืืฆืืืช ืืขืืื ืฉืื ืืืื ืืืืื ืืช ืืืชื ืืกืคืจ ืฉื ืฆืืชืื ืฉืืืจืื.
- ืฆืืชืื ืืืฉืื ืืชืืืกืคืื ืืขืืื.
ืฉืืืืช ืืืืืขืืช ืืืืืฉืงืื SortedMap ื-NavigableMap
ืืื HashMap, TreeMap ืืืืฉืืช ืืช ืืืฉืง Map, ืื ืฉืืืืจ ืฉื-TreeMap ืืฉ ืืช ืื ืืฉืืืืช ืืงืืืืืช ื-HashMap. ืืื TreeMap ืืืืฉืืช ืื ืืช ืืืฉืงื SortedMap ื- NavigableMap , ืืื ืืจืืืืื ืืื ืคืื ืงืฆืืื ืืืืช ื ืืกืคืช. SortedMap ืืื ืืืฉืง ืฉืืจืืื ืืช ืืคื ืืืืกืืฃ ืฉืืืืช ืจืืืื ืืืืช ืืืขืจื ื ืชืื ืื ืืืืื:- firstKey() : ืืืืืจ ืืช ืืืคืชื ืฉื ืืืืื ื ืืจืืฉืื ืืืคื
- lastKey() : ืืืืืจื ืืช ืืืคืชื ืฉื ืืืืื ื ืืืืจืื
- headMap(K end) : ืืืืืจื ืืคื ืืืืืื ืืช ืื ืืจืืืืื ืฉื ืืืคื ืื ืืืืืช, ืืืืชืืื ืืขื ืืืืื ื ืขื ืกืืฃ ืืืคืชื
- tailMap(K start) : ืืืืืจื ืืคื ืืืืืื ืืช ืื ืืจืืืืื ืฉื ืืืคื ืื ืืืืืช, ืืืืื ื ืืืชืืื ืืขื ืืกืืฃ
- subMap(K start, K โโend) : ืืืืืจื ืืคื ืืืืืื ืืช ืื ืืจืืืืื ืฉื ืืืคื ืื ืืืืืช, ืืืืื ื ืืืชืืื ืืขื ืืืืื ื ืขื ืกืืฃ ืืืคืชื.
- firstEntry() : ืืืืืจ ืืช ืฆืื ืืืคืชื-ืขืจื ืืจืืฉืื
- lastEntry() : ืืืืืจื ืืช ืฆืื ืืืคืชื-ืขืจื ืืืืจืื
- pollFirstEntry() : ืืืืืจ ืืืืืง ืืช ืืืื ืืจืืฉืื
- pollLastEntry() : ืืืืืจ ืืืืืง ืืช ืืืื ืืืืจืื
- ceilingKey(K obj) : ืืืืืจื ืืช ืืืคืชื ืืงืื ืืืืชืจ k ืฉืืืื ืื ืฉืืื ืืืคืชื obj. ืื ืืื ืืคืชื ืืื, ืืืืืจื null
- floorKey(K obj) : ืืืืืจ ืืช ืืืคืชื k ืืืืื ืืืืชืจ ืืงืื ืื ืฉืืื ืืืคืชื obj. ืื ืืื ืืคืชื ืืื, ืืืืืจื null
- lowerKey(K obj) : ืืืืืจื ืืช ืืืคืชื k ืืืืื ืืืืชืจ ืืงืื ืืืืคืชื obj. ืื ืืื ืืคืชื ืืื, ืืืืืจื null
- higherKey(K obj) : ืืืืืจ ืืช ืืืคืชื ืืงืื ืืืืชืจ k ืฉืืืื ืืืืคืชื obj. ืื ืืื ืืคืชื ืืื, ืืืืืจื null
- ceilingEntry(K obj) : ืืืืื ืืฉืืืช ceilingKey(K obj), ืืืืืจื ืจืง ืฆืื ืืคืชื-ืขืจื (ืื null)
- floorEntry(K obj) : ืืืืื ืืฉืืืช floorKey(K obj), ืืืืืจื ืจืง ืืื ืืคืชื-ืขืจื (ืื null)
- lowerEntry(K obj) : ืืืืื ืืฉืืืช lowerKey(K obj), ืืืืืจื ืจืง ืืื ืืคืชื-ืขืจื (ืื null)
- higherEntry(K obj) : ืืืืื ืืฉืืืช higherKey(K obj), ืืืืืจื ืจืง ืฆืื ืืคืชื-ืขืจื (ืื null)
- descendingKeySet() : ืืืืืจื NavigableSet ืืืืื ืืช ืื ืืืคืชืืืช ืืืืื ืื ืืกืืจ ืืคืื
- descendingMap() : ืืืืืจื ืืคืช Navigable ืฉืืืืื ืืช ืื ืืืืืืช ืืืืื ืื ืืกืืจ ืืคืื
- navigableKeySet() : ืืืืืจื ืืืืืืงื NavigableSet ืืืืื ืืช ืื ืืืคืชืืืช ืืกืืจ ืฉืื ืื ืืืืืกื ืื
- headMap(K upperBound, boolean incl) : ืืืืืจื ืืคื ืืืืืื ืืืืืช ืืืืชืืื ืืืืื ื upperBound. ืืคืจืืืจ incl ืืฆืืื ืื ืืืืื ืืช ืืืืื ื upperBound ืืืคื ืืืืืืจืช
- tailMap(K lowerBound, boolean incl) : ืคืื ืงืฆืืื ืืืืช ืืืื ืืฉืืื ืืงืืืืช, ืืืืืจื ืจืง ืืืืืช ืืืืืื ืืชืืชืื ืขื ืืกืืฃ
- subMap(K lowerBound, Boolean lowIncl, K upperBound, Boolean highIncl) : ืืื ืืฉืืืืช ืืงืืืืืช, ืืืืืจื ืืืืืช ืืืืืื ืืชืืชืื ื-UpperBound; ืืืจืืืื ืืื lowIncl ื-highIncl ืืฆืืื ืื ืื ืืืืื ืืช ืจืืืื ืืืืื ืืืคื ืืืืฉื.
ืืืืืืืช ืฉื TreeMap
ืืฉืคืข ืืื ืฉื ืฉืืืืช ื ืืกืคืืช ืขืฉืื ืืืืจืืืช ืืืืชืจ, ืืื ืื ืืชืืจืจืืช ืืืืขืืืืช ืืจืื ืืืชืจ ืืื ืฉืืชื ืขืฉืื ืืืืื ืืืื ืจืืฉืื. ืืืื ื ืืงืืจ ืืื ืืช ืืืืืื ืืืื. ืชืืจื ืืขืฆืืื ืฉืื ืื ื ืขืืืืื ืืืืืงืช ืืฉืืืืง ืฉื ืืืจื ืืืืื, ืืืฉ ืื ื ืืืืจ ืฉื ืื ืฉืื ืืื ืื ืื ื ืจืืฆืื ืืืฆืื ืืืืขืืช. ืืฉ ืืืืืจ ืฉื ื ืคืจืืื:- ืขืืื ื ืืขืงืื ืืืจ ืืกืคืจ ืืืืคืขืืช ืฉื ืื ืืื
- ืืืืืืจืืชื ืืืฆืืช ืืืืขืืช ืืงืืื ืื ืฉืื ื.
public class Person {
public String firstName;
public String lastName;
public int age;
public Person(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
}
ืื ื ืืืืฉืืื ืืช ืืืืืืื ืืืืืงื ืืจืืฉืืช :
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
TreeMap<Person, Integer> map = new TreeMap<>(Comparator.comparingInt(o -> o.age));
map.put(new Person("John", "Smith", 17), 0);
map.put(new Person("Ivan", "Petrenko", 65), 0);
map.put(new Person("Pedro", "Escobar", 32), 0);
map.put(new Person("Shirley", "Hatfield", 14), 0);
map.put(new Person("Abby", "Parsons", 19), 0);
Person firstAdultPerson = map.navigableKeySet().stream().filter(person -> person.age>18).findFirst().get();
Map<Person, Integer> youngPeopleMap = map.headMap(firstAdultPerson, false);
Map<Person, Integer> adultPeopleMap = map.tailMap(firstAdultPerson, true);
showAdvertisementToYoung(youngPeopleMap);
showAdvertisementToAdult(adultPeopleMap);
}
public static void showAdvertisementToYoung(Map map) {}
public static void showAdvertisementToAdult(Map map) {}
}
ืืืืืงื Main, ืฆืืจ TreeMap, ืฉืื ืื ืืคืชื ืืืืฆื ืืื ืกืคืฆืืคื, ืืื ืขืจื ืืื ืืกืคืจ ืืืคืขืืช ืืืืืขื ืืืืืฉ. ืื ืื ื ืืขืืืจืื ืืช ืืงืื ืกืืจืืงืืืจ ืืฉืืื ืฉืืืืื ืื ืฉืื ืืคื ืืื. ืื ื ืืืืืื ืืช ืืืคื ืืขืจืืื ืฉืจืืจืืชืืื. ืืขืช ืื ื ืจืืฆืื ืืงืื ืืชืืืืกืืช ืืืืืืจ ืืจืืฉืื ืืืืืจ ืื ืชืื ืื ืืงืื ืฉืื ื. ืื ื ืขืืฉืื ืืืช ืืืืฆืขืืช ื-API ืฉื Stream. ืืืืจ ืืื ื ืงืื ืฉืชื ืืคืืช ื ืคืจืืืช, ืืืชื ืื ื ืืขืืืจืื ืืฉืืืืช ืฉืืฆืืืืช ืืืืขืืช. ืืฉ ืืจืื ืืืื ืืจืืื ืฉืืืืื ื ืืืฆืข ืืช ืืืฉืืื ืืื. ืืจืกื ื ืืฉืืืืช ืฉื ืืืืงืช TreeMap ืืืคืฉืจ ืื ื ืืืฆืืจ ืคืชืจืื ืืช ืืืชืืืื ืืืฉืืช ืืื ืฆืืจื. ืืชื ืื ืฆืจืื ืืืืืจ ืืช ืืืื, ืื ืืชื ืชืืื ืืืื ืืืฉืชืืฉ ืืชืืขืื ืื ืืืืคืื ืื-IDE ืฉืื. ืืื ืืืืง ืืช ืื ืฉืืืืช, ืื ื ืืฆืืขืื ืื ืืฆืคืืช ืืฉืืขืืจ ืืืืื ืืงืืจืก Java ืฉืื ื
GO TO FULL VERSION