使用TreeMap集合實現(xiàn)以學生為對象把學生的學號按大到小的排序
大家好,我是Java進階者。
一、LinkedHashMap類
1.LinkedHashMap類是HashMap的子類,LinkedHashMap可以使用雙向鏈表來維護內(nèi)部元素的關(guān)系,保證了元素迭代的順序,這個迭代的順序可以是插入或訪問順序。HashMap是無序的,LinkedHashMap是有序的。
2.LinkedHashMap的用法例子:
- import java.util.*;
- public class m02 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Map m=new HashMap();
- m.put("1", "Java程序設計");
- m.put("2", "軟件測試");
- m.put("3", "數(shù)據(jù)庫原理及其應用");
- Set ks=m.keySet();
- Iterator i=ks.iterator();
- while(i.hasNext()){
- String key=(String)i.next();
- String value=(String) m.get(key);
- System.out.println(key+"--"+value);
- }
- }
- }
運行的結(jié)果是:
二、如何Map存儲的所有值的Collection集合?
1.獲取Map存儲的所有值的Collection集合的值是調(diào)用Map的values()方法,然后迭代集合每一個值。
2.實現(xiàn)的例子:
- import java.util.*;
- public class m01 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Map m=new HashMap();
- //存儲鍵和值
- m.put("c1", "Java程序設計");
- m.put("c2", "軟件測試");
- m.put("c3", "數(shù)據(jù)庫原理及其應用");
- Collection v=m.values();
- Iterator i=v.iterator();
- while(i.hasNext()){
- String value=(String)i.next();
- System.out.println(value);
- }
- }
- }
運行的結(jié)果是:
三、TreeMap集合
1.TreeMap是Map接口的其中之一實現(xiàn)類。TreeMap也是用來存儲鍵和值的,也不可以出現(xiàn)重復的鍵。TreeMap它是按鍵(key)的自然順序排列的。
2.TreeMap的用法例子:
- import java.util.*;
- public class m02 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- TreeMap m=new TreeMap();
- m.put("4", "Java程序設計");
- m.put("6", "軟件測試");
- m.put("2", "數(shù)據(jù)庫原理及其應用");
- Set ks=m.keySet();
- Iterator i=ks.iterator();
- while(i.hasNext()){
- String key=(String)i.next();
- String value=(String) m.get(key);
- System.out.println(key+"--"+value);
- }
- }
- }
運行的結(jié)果是:
四、使用TreeMap集合實現(xiàn)以學生為對象把學生的學號按大到小的排序
1.在使用TreeMap集合通過自定義的比較器方法對所有鍵進行排序。
2.例子的實現(xiàn):
- import java.util.*;
- public class m02 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //創(chuàng)建TreeMap集合
- TreeMap m=new TreeMap(new My());
- m.put("4", "張三");
- m.put("6", "李四");
- m.put("2", "王五");
- Set ks=m.keySet();
- Iterator i=ks.iterator();
- while(i.hasNext()){
- String key=(String)i.next();
- String value=(String) m.get(key);
- System.out.println(key+"--"+value);
- }
- }
- }
- //定義類來自定義比較器
- class My implements Comparator{
- //實現(xiàn)比較方法
- public int compare(Object obj1,Object obj2){
- String id1=(String) obj1;
- String id2=(String) obj2;
- return id2.compareTo(id1);
- }
- }
運行的結(jié)果是:
五、總結(jié)
本文主要介紹了LinkedHashMap類、Map如何存儲所有值的Collection集合、TreeMap集合、使用TreeMap集合實現(xiàn)以學生為對象把學生的學號按大到小的排序。
LinkedHashMap可以使用雙向鏈表來維護內(nèi)部元素的關(guān)系,保證了元素迭代的順序,這個迭代的順序可以是插入或訪問順序。
獲取Map存儲的所有值的Collection集合的值是調(diào)用Map的values()方法。
使用TreeMap集合實現(xiàn)以學生為對象把學生的學號按大到小的排序是通過自定義一個比較器的方法,然后實現(xiàn)比較方法。希望大家通過本文的學習,對你有幫助!
本文轉(zhuǎn)載自微信公眾號「Java進階學習交流」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Java進階學習交流公眾號。