Index.java
package com.test.coll; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Random; public class Index { public static void main(String[] args) { System.out.println("---------排序前---------"); ArrayList<HashMap<String, String>> al = Index.getRondomData(); for (HashMap<String, String> hm : al) { System.out.println(hm.get("key") + ":" + hm.get("value")); } System.out.println("---------排序后---------"); Collections.sort(al, new MySort(false, true, "key")); for (HashMap<String, String> hm : al) { System.out.println(hm.get("key") + ":" + hm.get("value")); } } public static ArrayList<HashMap<String, String>> getRondomData() { ArrayList<HashMap<String, String>> al = new ArrayList<HashMap<String, String>>(); for (int i = 0; i < 10; i++) { HashMap<String, String> hm = new HashMap<String, String>(); hm.put("key", (new Random()).nextInt(100) + ""); hm.put("value", (new Random()).nextInt(100) + ""); al.add(hm); } return al; } }
MySort.java
package com.test.coll; import java.util.Comparator; import java.util.HashMap; public class MySort implements Comparator<HashMap<String, String>> { private boolean isAsc; // 是否为升序,true:升序,false:降序 private boolean isNum; // 排序value是否为数值型 private String key; // 根据哪个key排序 public MySort(boolean isAsc, boolean isNum, String key) { this.isAsc = isAsc; this.isNum = isNum; this.key = key; } @Override public int compare(HashMap<String, String> hashMap1, HashMap<String, String> hashMap2) { String v1 = hashMap1.get(this.key); String v2 = hashMap2.get(this.key); if (!isNum) { return isAsc ? (v1.compareTo(v2)) : (v2.compareTo(v1)); } else { if (Double.parseDouble(v1) > Double.parseDouble(v2)) { return isAsc ? 1 : -1; }else if(Double.parseDouble(v1) < Double.parseDouble(v2)) { return isAsc ? -1 : 1; }else { return 0; } } } }
相关推荐
ArrayList,HashMap
集合,ArrayList,hashmap
比较Vector、ArrayList和hashtable hashmap
ArrayList集合与HashMap的扩容原来.docx
主要介绍了 ArrayList和HashMap如何自己实现的相关资料,需要的朋友可以参考下
arrayList排序arrayList排序arrayList排序
比较分析Vector、ArrayList和hashtable hashmap数据结构
编写一个查询类,输入学生学号,若该生在数据文件(test.txt)中存在,在JTextArea中显示该生信息 若该生在数据文件(test.txt)中不存在,显示”查无此人”,可反复查找.在输出中,能显示该生的总成绩和平均成绩,将显示结果...
arraylist 一维数组排序
java中对ArrayList进行排序的方法参考
1. 测试ArrayList类的方法: package RongQI.Collection; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** * 测试Collection接口中的方法 */ public class TestArraylist {...
用ArrayList实现的排序算法,希望对有需要的同学有帮助,如有错误请指出。JDK版本为1.7
51. ArrayList LinkedList Set HashMap介绍.txt
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你...
今天小编就为大家分享一篇关于ArrayList及HashMap的扩容规则讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
arraylist 对象中的某个值排序,并非单出的数组排序
经典讲解List和ArrayList和Vector和HashTable和HashMap区别
ArrayList常用的方法如下: Add 添加到 ArrayList 的結尾處 Remove 從 ArrayList 中移除特定對象的第一個匹配項 RemoveAt 移除 ArrayList 的指定索引處的元素 Insert 將元素插入 ArrayList 的指定索引處 ...
遍历ArrayList存入HashMap中