今天项目中用到了对list中的对象排序,把代码和大家分享下,用工具类collections中的sort方法排序。写一个比较类实现Comparator接口,具体两个类的大小就取决于实现这个接口时里边的逻辑。接下来大家看下例子
以下是比较类的实现
package org.sort;
import java.util.Comparator;
public class ComparatorPerson implements Comparator{
public int compare(Object arg0, Object arg1) {
Person p0=(Person)arg0;
Person p1=(Person)arg1;
if(p0.getAge()<p1.getAge()){
return 1;
}else if(p0.getAge()==p1.getAge()){
if(p0.getName().compareTo(p1.getName())>0){
return 1;
}else{
return 0;
}
}else{
return 0;
}
}
}
以下是需要比较的类
package org.sort;
public class Person {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(int age, String name) {
super();
this.age = age;
this.name = name;
}
}
以下是测试类
package org.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Person> list = new ArrayList<Person>();
list.add(new Person(10, "张三"));
list.add(new Person(10, "张三丰"));
list.add(new Person(11, "张三"));
list.add(new Person(11, "张三丰"));
for (Person p : list) {
System.out.println(p.getAge() + "--排序前---" + p.getName());
}
Collections.sort(list, new ComparatorPerson());
for (Person p : list) {
System.out.println(p.getAge() + "---排序后--" + p.getName());
}
String[] ss = "a||b ".split("\\|\\|");
System.out.println(ss.length);
for (String string : ss) {
System.out.println(string);
}
}
}
分享到:
相关推荐
主要介绍了JAVA对list集合进行排序Collections.sort(),需要的朋友可以参考下
主要介绍了Java Collections.sort()实现List排序的默认方法和自定义方法,需要的朋友可以参考下
本文通过两种方法给大家介绍java集合中的Collections.sort方法对list排序,第一种方式是list中的对象实现Comparable接口,第二种方法是根据Collections.sort重载方法实现,对collections.sort方法感兴趣的朋友一起...
字符串数组 排序
主要介绍了JAVA中Collections工具类sort()排序方法,非常具有实用价值,需要的朋友可以参考下。
List<String> location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));
但是通常排序算法不得不让程序员在写代码的过程中陷入对底层很多指针和位置的理解,java不希望这样,所以排序大多可以由java帮你做掉,例如,你要对一个数组排序,通过:Collections.sort(list)那么这个list被排序了...
Collections.sort(list); //依次检索输出list的所有对象 // for(int i=0;i<list.size();i++){ // System.out.println(list.get(i)); // } Iterator Iter=list.iterator(); while(Iter.hasNext()){ System.out...
java 集合类的排序主要是用Collections.sort方法,Collections和Collection是不一样的,前者是类,后者是接口,在这里,我主要是想说明它的sort方法的几种类型, 提示:实现接口的方法时,只需要比较两个数,大的返回1,...
JAVA 一道编程题目 核心代码: Collections.sort(list, String.CASE_INSENSITIVE_ORDER);//根据指定的字母方式排序
主要介绍了Java 生成随机字符串数组的实例详解的相关资料,主要是利用Collections.sort()方法对泛型为String的List 进行排序,需要的朋友可以参考下
Collections.sort() //对一个 LIST Arrays.sort() //对一个数组进行排序 Collections.reverse() //对一个 LIST Arrays.toString(char [] a) //转换为字符串 charAt(int x) //获取特定索引处的字符length() //字符串...
3.如果列表中的元素是可比较大小的,则可用Java.util.Collections类中的静态方法sort(列表)方法进行排序 Collections.sort(list); System.out.println(list); ;4.求最大最小值 Collections类中的静态方法max(列表)...
而在Java类库中有一个Arrays类的sort方法已经实现各种数据类型的排序算法。程序员只需要调用该类的方法即可。 代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,...
比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的. 2.装饰着模式(Decorator): 动态的给一个对象添加一些额外的职责. 比如java.io包. BufferedInputStream封装...
Collections.sort排序内部原理 HashMap 的实现原理 HashSet 的实现原理 ArrayList 和 LinkedList 的区别 为何Map接口不继承Collection接口 HashMap的底层实现原理 HashMap并发安全的问题 JDK1.8与JDK1.7的性能对比
排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高 ...
当我们有这么一个personList,里面包含了person1, person2, persion3….., 我们用Collections.sort( personList ), 是得不到预期的结果的. 这时肯定有人要问, 那为什么可以排序一个字符串list呢: 如 ...
典型的是Collections.sort(List list,Comparator<? super T> c)这个方法,它的第二个参数是一个实现Comparator接口的实例。我们可以根据自己的排序规则写一个类,实现此接口,传入此方法,那么这个方法就会根据...