`

坑爹的集合

 
阅读更多
本节实例介绍对Map中的记录根据键进行排序,Map对象的键是Integer类型,排序结果可以是升序也可以是降序。
关键技术剖析:
l  只有TreeMap能够把保持的记录根据键排序,因此,可以把其他Map转换成TreeMap,转换的方法是把Map对象当做参数构造TreeMap。
l  TreeMap默认用升序排序,可以指定排序用的比较器。比较实现Comparator接口。
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
 
public class SortMap1 {
   // 输出map
   private static void output(Map map) {
      // 第一种方法用 map.entrySet()遍历
      Iterator it = map.entrySet().iterator();
      while (it.hasNext()) {
         Map.Entry<Integer, String> s = (Entry<Integer, String>) it.next();
         int key = s.getKey();
         String value = s.getValue();
         // System.out.println("map的键是:"+key+",值是:"+value);
      }
 
      // 第二种方法用map.keySet()遍历
      it = map.keySet().iterator();
      while (it.hasNext()) {
         int key = (Integer) it.next();
         String value = (String) map.get(key);
         System.out.println("map的键是:" + key + ",值是:" + value);
 
      }
 
   }
 
   public static void main(String[] args) {
      Map map = new HashMap();
      map.put(new Integer(5), "aaa");
      map.put(new Integer(8), "bbb");
      map.put(new Integer(4), "ccc");
      map.put(new Integer(7), "ddd");
      map.put(new Integer(3), "eee");
      map.put(new Integer(1), "fff");
      System.out.println("初始化后的map:");
      output(map);
  
      // 借助TreeMap的排序功能给mayMap排序
      Map treeMap = new TreeMap(map);
      System.out.println("排序后的map:");
      output(treeMap);
  
      // 用自定义的比较器排序
      TreeMap newTreeMap = new TreeMap(new MyComparator());
      newTreeMap.putAll(map);
      System.out.println("用自定义的比较器排序后的map:");
      output(newTreeMap);
   }
}
 //比较器
class MyComparator implements Comparator {
 
   @Override
   public int compare(Object o1, Object o2) {
      int i1 = (Integer) o1;
      int i2 = (Integer) o2;
      if (i1 > i2) {
         return -1;
      }
      if (i1 < i2) {
         return 1;
      }
      return 0;
   }
}



注意:c1 > c2,return -1是降序,return 1是升序
@Test
	public void compareTest() {
		List<Integer> list = new ArrayList<Integer>();
		list.add(3);
		list.add(8);
		list.add(2);
		list.add(1);
		list.add(4);
		list.add(0);

		Collections.sort(list, new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				if (o1 > o2) {
					return -1;
				}
				else {
					return 1;
				}
			}
		});
		System.out.println(list.toString());
	}
[8, 4, 3, 2, 1, 0]
分享到:
评论

相关推荐

    易语言编写的坑爹记事本

    易语言编写的坑爹记事本 实用 用了的人没一个不笑疯

    c语言坑爹大冒险完整源码

    c语言坑爹大冒险完整源码 c语言坑爹大冒险完整源码 c语言坑爹大冒险完整源码 c语言坑爹大冒险完整源码 c语言坑爹大冒险完整源码 c语言坑爹大冒险完整源码 c语言坑爹大冒险完整源码 c语言坑爹大冒险完整源码 c语言...

    【安卓】史上最坑爹游戏6 内购破解版

    《史上最坑爹的游戏6》是由珠海顶峰互动科技研发的一款休闲益智类解谜游戏,简称“坑爹游戏”,于2013年发行。《史上最坑爹的游戏》是一个让人抓狂、让人迷恋、让人傻笑的游戏。 其中设计了大量奇思妙想,趣味连篇的...

    【安卓】史上最坑爹游戏8 内购破解版

    《史上最坑爹的游戏8》是由珠海顶峰互动科技研发的一款休闲益智类解谜游戏,简称“坑爹游戏”,于2013年发行。《史上最坑爹的游戏》是一个让人抓狂、让人迷恋、让人傻笑的游戏。 其中设计了大量奇思妙想,趣味连篇的...

    【安卓】史上最坑爹的游戏9 内购破解版

    《史上最坑爹的游戏9》是由珠海顶峰互动科技研发的一款休闲益智类解谜游戏,简称“坑爹游戏”,于2013年发行。《史上最坑爹的游戏》是一个让人抓狂、让人迷恋、让人傻笑的游戏。 其中设计了大量奇思妙想,趣味连篇的...

    c语言小游戏之坑爹大冒险

    C语言项目源码大全的50套源代码资源,这里是其中的c语言实现坑爹大冒险游戏源码,大家一起学习交流哈!

    c语言坑爹大冒险.rar

    c语言坑爹大冒险.rarc语言坑爹大冒险.rar

    c语言坑爹大冒险.zip

    c语言坑爹大冒险.zip

    坑爹跑酷(马里奥改版)

    超级有趣的坑爹跑酷!!! 能坑到让你怀疑人生的坑爹跑酷!!! 新增排行榜,让你与对手一决高下!!! 作者亲自测试 所有关卡均可通关 满分100分 你能夺得多少分呢? 赶快下载试试看吧!!! Tip: ▄█▀█● ...

    坑爹大冒险(C语言).zip

    坑爹大冒险,内含有源文件和可执行文件,快来看看吧!(C语言)

    【安卓】史上最坑爹游戏内购破解版

    《史上最坑爹的游戏》是由珠海顶峰互动科技研发的一款休闲益智类解谜游戏,简称“坑爹游戏”,于2013年发行。《史上最坑爹的游戏》是一个让人抓狂、让人迷恋、让人傻笑的游戏。 其中设计了大量奇思妙想,趣味连篇的...

    不错的毕业设计、课程设计、练手c语言项目:坑爹大冒险.rar

    不错的毕业设计、课程设计、练手c语言项目:坑爹大冒险.rar 不错的毕业设计、课程设计、练手c语言项目:坑爹大冒险.rar 不错的毕业设计、课程设计、练手c语言项目:坑爹大冒险.rar 不错的毕业设计、课程设计、练手...

    python爬取坑爹网图片.py

    爬取这个搞笑网站。

    lol坑爹语录.doc

    lol坑爹语录.doc

    坑爹115网盘地址解析器

    坑爹115网盘地址解析器

Global site tag (gtag.js) - Google Analytics