ArrayList排序
今天发现,ArrayList 排序不满足期望。
起先,List是这样Before sort: [1, @I, am, Love, java, very, Much]
使用Collections.sort()方法排后是这样
After sort: [1, @I, Love, Much, am, java, very]
顺序:数字-非数字和字母字符-大写字符串(A-Z)-小写字符串(a-z)
期望的是按照字母顺序,忽略大小写
After override sort method: [1, @I, am, java, Love, Much, very]
所以只能Override sort方法
ArrayList<String> list=new ArrayList<String>();
list.add("1");
list.add("@I");
list.add("am");
list.add("Love");
list.add("java");
list.add("very");
list.add("Much");
System.out.println("Before sort: "+list);
Collections.sort(list);
System.out.println("After sort: "+list);
Collections.sort(list,new Comparator<Object>(){ @Override
public int compare(Object obj1, Object obj2) {
return ((String) obj1).toUpperCase().compareTo(((String) obj2).toUpperCase());
} });
System.out.println("After override sort method: "+list);
Collections.reverse(list);
System.out.println("After reverse: "+list);
运行结果如下:
Before sort: [1, @I, am, Love, java, very, Much]
After sort: [1, @I, Love, Much, am, java, very]
After override sort method: [1, @I, am, java, Love, Much, very]
After reverse: [very, Much, Love, java, am, @I, 1]
ArrayList排序的更多相关文章
- Java ArrayList排序方法详解
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...
- ArrayList 排序Sort()方法扩展
1.sort() sort可以直接对默认继承 IComparable接口的类进行排序,如:int.string.... ArrayList arrayList = new ArrayList(); , ...
- ArrayList排序算法的源码
ArrayList,排序方法的调用过程 // 排序方法 public void sort(Comparator<? super E> c) { final int expectedModC ...
- 自定义方法实现ArrayList排序
package cn.edu.nwpu.java; import java.util.ArrayList; import java.util.Collection; import com.sun.xm ...
- 【Java】对ArrayList排序
java如何对ArrayList中对象按照该对象某属性排序 (从小到大) 两种方法: 方法一:Comparator<KNNNode> comparator = new Comparator ...
- ArrayList排序Sort()方法(转)
//使用Sort方法,可以对集合中的元素进行排序.Sort有三种重载方法,声明代码如下所//示. public void Sort(); //使用集合元素的比较方式进行排序 public void S ...
- 【BigData】Java基础_定义工具类,对ArrayList排序并且求最大值、最小值、平均值
需求描述 编写一个工具类,对ArrayList实现以下功能: ① 排序 ② 求最大值 ③ 求最小值 ④ 求平均值 需求实现 实现代码 package cn.test.logan.day04; impo ...
- 如何实现对ArrayList排序 sort()
package com.collection; import java.util.ArrayList;import java.util.Collections;import java.util.Com ...
- JAVA对ArrayList排序
ava如何对ArrayList中对象按照该对象某属性排序 增加排序功能,打印时:输出学生对象的时候,需要先按照年龄排序,如果年龄相同,则按照姓名排序,如果姓名也相同,则按照学号排序. Code hig ...
随机推荐
- 用eclipse导入jar包并使其在一个文件夹下
步骤如下:1.右键点击你需要添加jar包的项目. 2.选择“Properties”. 3.然后选择对话框中的“Java Build Path”. 4.选择“Libraries”选项卡,然后点击右边的“ ...
- Scala 中object和class的区别
Scala中没有静态类型,但是有有“伴侣对象”,起到类似的作用. Scala中类对象中不可有静态变量和静态方法,但是提供了“伴侣对象”的功能:在和类的同一个文件中定义同名的Object对象:(须在同一 ...
- 别老扯什么Hadoop了,你的数据根本不够大
本文原名“Don't use Hadoop when your data isn't that big ”,出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过 ...
- redis php扩展安装下载
php的redis 扩展下载地址 Windows :http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ 下载对应版本,一般有两个 n ...
- Linux服务器管理: 系统的进程管理后台进程的切换和相关命令
1.把进程放入到后台: [root@localhost/]#tar -zcf etc.tar.gz /etc & //这种方法是在后台运行的 [root@localhost ...
- php正则表达式匹配用户名规则:由字母开头的6-16位字母和数字组成的字符串
$pattern = '/^[a-zA-Z]{1}[a-zA-Z0-9]{5,15}$/i';
- Memcached目录
Memcached 简介.安装和基本使用 Memcached基础知识 理解Memcached的分布式 Memcached存储命令 - set Memcached存储命令 - add Memcached ...
- eclipse svn快捷键
一.打开eclipse插件安装市场,搜索svn,选择Subclipse安装 二.设置 svn ,设置快捷键, 1.windows-preference,在打开对话框输入keys过滤出keys选择 2. ...
- 7-RandomAccessFile 随机流
package com.io; import java.io.File; import java.io.FileNotFoundException; import java.io.IOExceptio ...
- 超级强大的formValidator
来源: http://www.cnblogs.com/wzmaodong http://www.neatstudio.com/show-73-1.shtml (全) http://www.cnblo ...