`
crabdave
  • 浏览: 1294927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

针对ArrayList中的某个属性进行排序

    博客分类:
  • Java
阅读更多

针对ArrayList中的某个属性进行排序

 

 

1.创建要比较的对象

  
public class ExampleObj{
 private Long prop;
 private String name;
 

 public ExampleObj(Long prop,String name){
      this.prop= prop;
      this.name= name;  
 }

 public Long getProp() {
     return prop;
 }
 public void setProp(Long prop) {
  this.prop= prop;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}

 

2.实现java.util.Comparator<T>接口

 

import java.io.Serializable;
import java.util.Comparator;

public class ComparatorExampleObj implements Comparator<ExampleObj>,Serializable {
 public int compare(ExampleObj o1, ExampleObj o2) {
  ExampleObj p1 = (ExampleObj) o1;
  ExampleObj p2 = (ExampleObj) o2;
  //按升序排列
  if (p1.getProp() > p2.getProp())
   return 1;
  else
   return 0;
 }
}

3.排序

ArrayList list = new ArrayList();
  list.add(new ExampleObj (1,"name1"));
  list.add(new ExampleObj (3,"name3"));
  list.add(new ExampleObj (2,"name2"));

 

ComparatorExampleObj comp = new ComparatorExampleObj ();
  Collections.sort(list,comp); 

//此时list为以按prop属性进行过升序排序的集合类

 

 

分享到:
评论

相关推荐

    Java中List集合对象去重及按属性去重的8种方法

    以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性进行去重。 ### 一、对象整体去重 #### 1. 使用Set(HashSet) 这是最基础的方法,通过将List转换为Set,由于Set不允许重复...

    如何实现java8 list按照元素的某个字段去重

    在Java编程中,有时我们需要处理列表(List)数据结构,并且在处理过程中,可能需要根据元素的特定字段去重。Java 8引入了Stream API,它提供了强大的数据处理能力,包括去重操作。本篇文章将详细讲解如何使用Java 8...

    2021-2022计算机二级等级考试试题及答案No.10580.docx

    - **菜单命令:** 在Access 2003中,排序功能通常位于“记录”菜单中。 **结论:** 正确答案是B,“记录”菜单包含了数据排序的命令。 ### 7. 软件危机表现 **知识点:** - **软件危机:** 指的是软件开发过程中...

    2021-2022计算机二级等级考试试题及答案No.11175.docx

    18. 报表数据属性通常包括记录源、排序依据和筛选,而打印版式是页面布局的一部分,不是报表数据属性。 19. 当... (由于每个问题的答案都已经给出,这里省略了第19题的答案,但通常这会涉及到数据库操作或者程序...

    JAVA struts2 框架 面试题

    Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 5. HashMap 和 Hashtable 的区别: 一、历史原因,Hashtable 是基于陈旧的 Dictionary 类,HashMap ...

    可拖拽移动的listview

    "可拖拽移动的listview"是一个特殊实现,它扩展了ListView的基本功能,允许用户通过触摸和拖动来改变ListView中各item(列表项)的位置,提高了用户体验,特别是对于需要排序的数据列表。这种功能常见于应用中的任务...

    超级有影响力霸气的Java面试题大全文档

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...

    2021-2022计算机二级等级考试试题及答案No.16119.docx

    ASCII码值的排序中,数字(5)小于大写字母(X),大写字母(X)小于小写字母(a),所以正确的升序排序是5,X,a。 良好的程序设计风格强调程序的可读性、简洁性和清晰性,即使在没有注释的情况下,也应该让人容易...

    SimpleJava.pdf

    - **编译器作用**:编译器在编译过程中对类型进行验证,确保变量和表达式的类型正确无误。 - **泛型擦除**:尽管Java支持泛型,但实际执行时会进行类型擦除,静态类型检查保证了泛型的类型安全。 #### 5. Java ...

    VB教程比较难做的题目

    本教程针对的是VB中的较为复杂的部分,旨在帮助学习者深入理解并解决实际编程中可能遇到的问题。 在“VB教程比较难做的题目”这个主题中,我们可以预期会涵盖以下几个关键知识点: 1. **面向对象编程**:VB的核心...

    进销存系统文档作业例子

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、...

    c# 初学者英语

    【C#初学者英语】是针对刚开始学习C#编程语言并需要掌握相关英文术语的人群设计的教程。C#是一种面向对象的编程语言,广泛应用于软件开发,游戏制作,Web应用等多个领域。以下是一些核心的C#英文词汇及其含义: 1. ...

    “java高分面试指南”-25分类227页1000+题50w+字解析

    - 判断一个对象是否属于某个类或其子类,或实现了某个接口,返回结果为布尔值。 13. **隐式转换与显式转换** - 隐式转换:无需程序员操作,系统自动完成的小范围到大范围的数据类型转换。 - 显式转换(类型强转...

    EstruturaDados

    本资源" EstruturaDados"似乎是一个与数据结构相关的学习资料,特别针对FATEC(可能是某个教育机构)的学生。"下载所有Pdf,可以在 下载课程"提示我们,这个压缩包可能包含一系列PDF文件,用于讲解数据结构的相关...

    Java企业面试题整理及答案

    用插入法进行排序代码如下** 插入排序是一种简单的排序算法,其实现如下: ```java public class InsertionSort { public static void sort(int[] arr) { for (int i = 1; i ; i++) { int key = arr[i]; int j...

    Java基础整理

    - **使用时机**:当某个属性或方法被所有对象共享时,应考虑使用静态修饰。 - **静态代码块**:用于在类加载时执行一些初始化代码。 - **代码块**:在类中定义的代码块,用于执行特定任务。包括构造代码块和局部...

    Java高分面试指南.pdf

    【Java高分面试指南】是针对Java程序员面试的参考资料,涵盖了Java基础知识、OOP概念、数据结构等多个方面。以下是对这些知识点的详细说明: 1. **B/S架构和C/S架构**: - B/S架构(Browser/Server)是基于Web的...

    java面试题大全txt版

    - **指令标签**:如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`, 用于设置页面属性、包含其他资源或引用标签库。 - **脚本元素**:如`&lt;% %&gt;`, `! %&gt;`, `&lt;%= %&gt;`, 分别用于定义页面脚本、声明变量/方法以及...

Global site tag (gtag.js) - Google Analytics