开发中有时候需要自己封装分页排序时,List如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教。

1.Student的Bean如下:

public class Student {

private int age;

private String name;

private String weight;

public String getWeight() {

return weight;

}

public void setWeight(String weight) {

this.weight = weight;

}

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;

}

}

2.按照List中对象的Int类型属性进行排序

/**

* 按照List中的某个Int类型的属性进行排序

* @param list

*/

@SuppressWarnings("unchecked")

public static void sortIntMethod(List list){

Collections.sort(list, new Comparator(){

@Override

public int compare(Object o1, Object o2) {

Student stu1=(Student)o1;

Student stu2=(Student)o2;

if(stu1.getAge()>stu2.getAge()){

return 1;

}else if(stu1.getAge()==stu2.getAge()){

return 0;

}else{

return -1;

}

}

});

System.out.println("/排序之后///");

for(int i=0;i

Student st=(Student)list.get(i);

System.out.println("st.age="+st.getAge()+",st.name="+st.getName());

}

}

3.按照List中对象的String类型的属性进行排序

1)方法一:

/**

* 按照List中的某个String类型的属性进行排序

* @param list

*/

@SuppressWarnings("unchecked")

public static void sortStringMethod(List list){

Collections.sort(list, new Comparator(){

@Override

public int compare(Object o1, Object o2) {

Student stu1=(Student)o1;

Student stu2=(Student)o2;

return stu1.getName().compareTo(stu2.getName());

}

});

System.out.println("/排序之后///");

for(int i=0;i

Student st=(Student)list.get(i);

System.out.println("st.age="+st.getAge()+",st.name="+st.getName());

}

}

2)方法二:

使用java.text.RuleBasedCollator来实现,用来执行区分语言环境的String 比较:

/**

* 按照List中的某个String类型的属性进行排序

* @param list

*/

@SuppressWarnings("unchecked")

public static void sortByRuleBasedCollator(List list){

Collections.sort(list, new Comparator(){

@Override

public int compare(Object o1, Object o2) {

return ((java.text.RuleBasedCollator)java.text.Collator.getInstance(java.util.Locale.CHINA)).compare(((Student)o1).getName(), ((Student)o2).getName());

}

});

System.out.println("/排序之后///");

for(int i=0;i

Student st=(Student)list.get(i);

System.out.println("st.age="+st.getAge()+",st.name="+st.getName());

}

}

4.测试排序的方法

@SuppressWarnings("unchecked")

public static void main(String[] args) {

ArrayList list=new ArrayList();

Student t1=new Student();

t1.setAge(35);

t1.setName("wanglei");

list.add(t1);

Student t2=new Student();

t2.setAge(4);

t2.setName("lisi");

list.add(t2);

Student t3=new Student();

t3.setAge(56);

t3.setName("zhonghua");

list.add(t3);

Student t4=new Student();

t4.setAge(39);

t4.setName("waanglei");

list.add(t4);

System.out.println("/排序之前///");

for(int i=0;i

Student st=(Student)list.get(i);

System.out.println("st.age="+st.getAge()+",st.name="+st.getName());

}

//按照List中的某个Int类型的属性进行排序

sortIntMethod(list);

//按照List中的某个String类型的属性进行排序

sortStringMethod(list);

}

5.结果

java集合对象排序_java ArrayList集合中的某个对象属性进行排序的实现代码相关推荐

  1. java中list元素排序_java list集合元素根据某些字段排序

    一.jdk1.6的环境下 新建ComparatorSort类,并实现Comparator接口,重写compare方法 降序排序:o1的元素>o2的元素,并返回-1:o1的元素小于o2的元素,并返 ...

  2. java sql 排序_JAVA像SQL一样对List对象集合进行排序

    在开始之前,我先卖个关子提一个问题:假设我们有一个Movie类,这个类有三个成员变量分别是starred(是否收藏), title(电影名称), rating(评分).你知道怎么对一个Movie对象组 ...

  3. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素...

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

  4. java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)

    定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...

  5. java的对象数组和ArrayList集合

    对象数组 创建Person对象 public class Person {private String name;private int age;public Person() {}public Pe ...

  6. java 集合与泛型_java的集合和泛型的知识点归纳1

    [Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 [ ] 能够说出集合与数组的区别 [ ] 说出Collection集合的常用功能 [ ] 能够使 ...

  7. arraylist java 排序_Java ArrayList排序方法详解

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

  8. Java基础知识融合(Arraylist集合,多态,继承,封装,包装类,循环嵌套,if嵌套等等)

    目录 1.项目大纲 1.项目前提 2.项目说明 3.项目内容 3.该软件完成以下功能: 2.软件设计 1.结构 2.类设计 3. 部分代码展示 心得: 1.项目大纲 1.项目前提 掌握java基本语法 ...

  9. Java学习之路-day-09 ArrayList集合

    Java ArrayList集合 每日一句 1. ArrayList 1.1 ArrayList类概述 1.2 ArrayList类常用方法 1.3 ArrayList存储字符串并遍历 1.4 Arr ...

最新文章

  1. jenkins如何实现重新发布历史构建记录里的版本
  2. HDU4549 M斐波那契数列(矩阵快速幂+费马小定理)
  3. c++ 宽搜(倒水)
  4. use resources at the campus if possible
  5. git 32位_编译64位的BorderlessGaming
  6. java中两种添加监听器的策略
  7. 面试官:Spring该选择哪个构造方法来进行实例化?画重点要考的
  8. javascript-DOM-节点
  9. 头像上传html js版,javascript头像上传代码实例
  10. 用POP动画编写带富文本的自定义动画效果
  11. Datawhale编程学习之算法思想(7)
  12. 补偿IIR滤波器引入的延迟
  13. PHP方法,传入的参数前带三个点是什么意思?
  14. 惠普局域网共享打印机设置_Windows7局域网共享打印机教程,HP M1136 MFP打印机共享方法...
  15. Exception 异常和自定义异常
  16. webstorm直接运行js
  17. 购买PG霜,请认准官方网站
  18. 用计算机验证克莱姆法则,克莱姆法则的几种证明方法
  19. 厉害了!用12万行代码堆出来个蔡徐坤,编译还能通过!
  20. 成功的礼品公司的产品经营模式

热门文章

  1. 笑傲江湖手3D游服务器端文件,新笑傲江湖手游7月2日部分服务器数据互通预告...
  2. python开发图形小程序_python小程序图画 python开发微信小程序
  3. kodi资源_kodi 展示播放 NAS 电影
  4. 基于参考点的非支配遗传算法-NSGA-III(二)
  5. 日历控件如何切换语言 vant_看看甘特图控件VARCHART XGantt的亮点
  6. mysql和python先学哪个_Python数据库操作 初识mysql和mysql基本操作#学习猿地
  7. dos打开计算机管理,小何 发布 DOS 命令打开控制面板各项东东 你们懂得...
  8. linux内核arc4算法,linux内核中与进程相关的数据结构(基于linux-mainline-rc4)
  9. mysql in 查询优化_mysql in 集合查询优化问题。
  10. python RandomTrees特征编码