Java Arraylist 如何使用 Comparator排序import java.util.ArrayList;

import java.util.Collections;
import java.util.Comparator;public class Sort implements Comparator<String> {private final static int UP = 1;private final static int DOWM = -1;private int state;public Sort(int state) {this.state = state;}public Sort() {}public int compare(String o1, String o2) {if (state == Sort.DOWM) {return sortDown(o1, o2);}return sortUp(o1, o2);}private int sortUp(String o1, String o2) {if (o1.compareTo(o2) < 0) {return -1;} else if (o1.compareTo(o2) > 0) {return 1;} else {return 0;}}private int sortDown(String o1, String o2) {if (o1.compareTo(o2) > 0) {return -1;} else if (o1.compareTo(o2) < 0) {return 1;} else {return 0;}}public static void main(String[] args) {ArrayList<String> array = new ArrayList<String>();array.add("000001");array.add("000003");array.add("000005");array.add("000004");array.add("000002");Collections.sort(array, new Sort(Sort.DOWM));for (String str : array) {System.out.println(str);}}
}

  

功能:ArrayList中放置他是HashMap对象,这时要对其中的所有对象做排序。

一、首先编写排序器 
DataComparator.java

import Comparable.test1.Person;
import java.util.Comparator;
import java.util.HashMap;
import java.text.Collator;
import java.text.CollationKey; public class DataComparator implements Comparator { Collator collator = Collator.getInstance(); //调入这个是解决中文排序问题 public int compare(Object obj1, Object obj2) { HashMap map1 = (HashMap) obj1; HashMap map2 = (HashMap) obj2; String name1 = (String) map1.get("Name"); String name2 = (String) map2.get("Name"); CollationKey key1 = collator.getCollationKey(name1.toLowerCase()); CollationKey key2 = collator.getCollationKey(name2.toLowerCase()); return key1.compareTo(key2); }
}

  

二、测试 
ArrayListMapSortTest.java

import java.util.Collections;
import Comparable.ArrayListMapSort.DataComparator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Date;
import java.io.File;public class ArrayListMapSortTest {//列出文件夹下的文件及文件夹,不包括子文件夹中的文件和文件夹public ArrayList listFoldersAndFiles(String path) {File file = new File(path);File[] list = file.listFiles();ArrayList al = new ArrayList();for (int i = 0; i < list.length; i++) {//if (list[i].isDirectory())//listFolder(list[i].getPath());HashMap hm = new HashMap();hm.put("Name", list[i].getName());hm.put("Path", list[i].getPath());hm.put("AbsolutePath", list[i].getAbsolutePath());hm.put("Parent", list[i].getParent());//hm.put("isAbsolute", list[i].isAbsolute());//hm.put("isDirectory", list[i].isDirectory());//hm.put("isFile", list[i].isFile());//hm.put("isHidden", list[i].isHidden());hm.put("lastModified", new Date(list[i].lastModified()).toLocaleString());al.add(hm);//System.out.println(list[i].getName()+"    是文件夹:"+list[i].isDirectory());}return al;}public static void main(String[] args) {ArrayListMapSortTest databean = new ArrayListMapSortTest();ArrayList al = databean.listFoldersAndFiles("F:\\");Collections.sort(al, new DataComparator());for (int i = 0; i < al.size(); i++) {HashMap hm = (HashMap) al.get(i);for (Iterator iter = hm.entrySet().iterator(); iter.hasNext(); ) {Map.Entry entry = (Map.Entry) iter.next();Object key = entry.getKey();Object val = entry.getValue();System.out.print(key + "    " + val + "   ");}System.out.println();}}
}

  

转载于:https://www.cnblogs.com/DswCnblog/archive/2012/09/21/2697242.html

Java Arraylist 如何使用 Comparator排序相关推荐

  1. java compareto方法怎么排序的_深入理解Java中Comparable和Comparator排序

    本文有牛旦教育原创,头条首发,转载注明来源. 如何为需要的排序算法选择正确的接口?通过本文的分析讲解,我们会找到答案参考答案. 程序员经常需要将数据库中的元素排序为集合.数组或映射.在Java中,我们 ...

  2. arraylist java 排序_「arraylist排序」java ArrayList的两种排序方法 - seo实验室

    arraylist排序 1.ArrayList使用排序的初衷 我们知道ArrayList的好处是可以不用限定容器的大小,他会根据元素的增加自己扩大.但是存储进去的数据类型都会变成object,虽然每个 ...

  3. Java ArrayList的不同排序方法

    由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...

  4. java comparator排序顺序_Java 集合排序策略接口 Comparator

    1. 前言 最近用到了集合排序(基于 Java 8).现在我能用 Stream 的就用 Stream ,真香!排序可以这么写: List<People> peoples = new Arr ...

  5. java list 元素排序_对arraylist中元素进行排序实例代码

    rrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用. 实现Comparator接口必须实现compare方法,自己可以去看API帮助 ...

  6. java ArrayList排序中文文字排序

    java ArrayList排序中文文字排序 ArrayList<String> arr = new ArrayList<>(); arr.add("唐僧" ...

  7. Java的Comparator排序(升序降序)理解

    Java的Comparator排序(升序降序)理解 int compare(T o1, T o2); 这里o1表示位于前面的对象,o2表示后面的对象 返回-1(或负数),表示不需要交换01和02的位置 ...

  8. JAVA ArrayList 实现排序

    我们先生成20个随机数,存入ArrayList ArrayList<Integer> al=new ArrayList<>();Random r=new Random();fo ...

  9. java comparator 排序_Java8 Comparator 排序方法

    Java8 Comparator 排序方法 Java8 中 Comparator 接口提供了一些静态方法,可以方便于我们进行排序操作,下面通过例子讲解下如何使用 对整数列表排序(升序) List li ...

最新文章

  1. 你适合编程吗?你喜欢编程吗?
  2. ajax(jquery)前后台传数组(Springmvc后台)
  3. Arts 第十八周(7/15 ~ 7/21)
  4. rtti获取类的字段和属性和方法
  5. php 获取 uri,获取URI地址
  6. c语言期末考试复习题
  7. arduino步进电机程序库_Arduino基础入门篇27—步进电机驱动库的使用
  8. 华为nova 9系列曝光:全系标配骁龙778G 4G处理器
  9. 英雄无敌3pc移植android版,英雄无敌3手机版
  10. IPC-610E(电子组件的可接受性)
  11. “大圆满”之前行--从概念到知识再到计算的共生【原力】_目录规划与提要
  12. 数据组织与存储(一)
  13. 在家佛弟子对待工作的态度——世俗八正道
  14. Android源码目录简介
  15. 百度2017春招笔试真题编程题集合--买帽子
  16. Java:Hutool工具箱之Hutool-crypto加密解密
  17. 自引用结构兼谈Malloc和Free函数
  18. 操作性条件作用和经典性条件作用中,刺激分化和泛化的区别是?|小白心理-312/347考研答疑
  19. 51单片机 | 步进电机实验
  20. 使用SQLPLUS创建用户名和表空间

热门文章

  1. Windows10 手机应用程序开发 - 3. 做一个简单的计算器界面
  2. 算法专题(1)-信息学基本解题流程!
  3. APPENDIX B-菜单计划和食谱-Pagano博士的七天菜单计划样例-未完待续
  4. wordpress主题部署到github pages(调研+具体操作-还没有完成)
  5. jshell的安装使用
  6. 美的摇头风扇FW40-8A摇头拉线断了修复方案
  7. kaggle的图像数据集直接下载到google drive
  8. 第五章functions.py中的交叉熵代码解释
  9. ubuntu下面的SecureCRT破解失败问题+本地ubuntu系统远程连接RHEL服务器的免密码登录问题(自己归纳总结)
  10. 机器学习(二十八)——Monte-Carlo