一、 1.讓SortedSet集合做到排序還有另一種方式:java.util.Comparator; 2.單獨編寫一個比較器 package com.bjpowernode.java_learning; import java.util.*; public class D90_1_SortedS ...
一、
1.讓SortedSet集合做到排序還有另一種方式:java.util.Comparator;
2.單獨編寫一個比較器
package com.bjpowernode.java_learning; import java.util.*; public class D90_1_SortedSet { public static void main(String[] args) { //創建TreeSet集合的時候提供一個比較器 SortedSet products = new TreeSet(new ProductComparator()); Product90 p1 = new Product90(3.4); Product90 p2 = new Product90(4.0); Product90 p3 = new Product90(3.0); Product90 p4 = new Product90(2.0); Product90 p5 = new Product90(5.0); //添加元素 products.add(p1); products.add(p2); products.add(p3); products.add(p4); products.add(p5); //遍歷 Iterator i = products.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } class Product90 { double price; Product90(double price){ this.price = price; } public String toString() { return price+""; } } class ProductComparator implements Comparator{ public int compare(Object o1,Object o2) { double price1 = ((Product90)o1).price; double price2 = ((Product90)o2).price; if(price1==price2) { return 0; }else if (price1<price2) { return -1; }else { return 1; } } }
總結:使用這種單獨實現比較器的方法,因為這樣符合高內聚低耦合的原則,代碼復用性更強。
二、Comparable和Comparator的區別
見兩次連載的代碼,推薦使用Comparator
三、Map
package com.bjpowernode.java_learning; import java.util.*; public class D90_2_MapUsualMethod { public static void main(String[] args) { /** * 關於Map集合中的常用方法 */ //void clear();清空Map //boolean containsKey(Object key);判斷Map中是否包含這樣的key //boolean containsValue(Object value);判斷Map中是否包含這樣的value //Set<Map.Entry<K,V>> entrySet();返回此映射中包含的映射關係的Set視圖 //Object get(Object key);通過key獲取value; //Object put(Object key,Object value);向集合中添加鍵值對 //boolean isEmpty(); 判斷該集合是否為空 //Object remove(Object key);通過key將鍵值對刪除 //int size();獲取Map中鍵值對的個數 //Set keySet();獲取Map中所有的鍵值對 //Collection values();獲取Map集合中所有的value //1.創建Map集合 Map persons = new HashMap();//HashMap的預設初始化容量為16,預設載入因數時0.75 //2.存儲鍵值對 persons.put("10000","JACK"); persons.put("10001","ZHANGXINLEI"); persons.put("10002","YAOKUN"); persons.put("10003","ZHAOZEKUN"); persons.put("10004","LIDUO"); persons.put("10005","DIAOBI"); //3.判讀鍵值對的個數 //Map中的key是無序不可重覆的,和HashSet相同 System.out.println(persons.size()); //4.判斷集合中是否包含這樣的key System.out.println(persons.containsKey("10000")); //5.判斷集合中是否包含這樣的value System.out.println(persons.containsValue("ZHANGXINLEI")); } }
四、源碼:
D90_1_SortedSet.java
D90_2_MapUsualMethod.java
https://github.com/ruigege66/Java/blob/master/D90_1_SortedSet.java
https://github.com/ruigege66/Java/blob/master/D90_2_MapUsualMethod.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料