针对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属性进行过升序排序的集合类
分享到:
相关推荐
以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性进行去重。 ### 一、对象整体去重 #### 1. 使用Set(HashSet) 这是最基础的方法,通过将List转换为Set,由于Set不允许重复...
在Java编程中,有时我们需要处理列表(List)数据结构,并且在处理过程中,可能需要根据元素的特定字段去重。Java 8引入了Stream API,它提供了强大的数据处理能力,包括去重操作。本篇文章将详细讲解如何使用Java 8...
- **菜单命令:** 在Access 2003中,排序功能通常位于“记录”菜单中。 **结论:** 正确答案是B,“记录”菜单包含了数据排序的命令。 ### 7. 软件危机表现 **知识点:** - **软件危机:** 指的是软件开发过程中...
18. 报表数据属性通常包括记录源、排序依据和筛选,而打印版式是页面布局的一部分,不是报表数据属性。 19. 当... (由于每个问题的答案都已经给出,这里省略了第19题的答案,但通常这会涉及到数据库操作或者程序...
Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 5. HashMap 和 Hashtable 的区别: 一、历史原因,Hashtable 是基于陈旧的 Dictionary 类,HashMap ...
"可拖拽移动的listview"是一个特殊实现,它扩展了ListView的基本功能,允许用户通过触摸和拖动来改变ListView中各item(列表项)的位置,提高了用户体验,特别是对于需要排序的数据列表。这种功能常见于应用中的任务...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...
ASCII码值的排序中,数字(5)小于大写字母(X),大写字母(X)小于小写字母(a),所以正确的升序排序是5,X,a。 良好的程序设计风格强调程序的可读性、简洁性和清晰性,即使在没有注释的情况下,也应该让人容易...
- **编译器作用**:编译器在编译过程中对类型进行验证,确保变量和表达式的类型正确无误。 - **泛型擦除**:尽管Java支持泛型,但实际执行时会进行类型擦除,静态类型检查保证了泛型的类型安全。 #### 5. Java ...
本教程针对的是VB中的较为复杂的部分,旨在帮助学习者深入理解并解决实际编程中可能遇到的问题。 在“VB教程比较难做的题目”这个主题中,我们可以预期会涵盖以下几个关键知识点: 1. **面向对象编程**:VB的核心...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、...
【C#初学者英语】是针对刚开始学习C#编程语言并需要掌握相关英文术语的人群设计的教程。C#是一种面向对象的编程语言,广泛应用于软件开发,游戏制作,Web应用等多个领域。以下是一些核心的C#英文词汇及其含义: 1. ...
- 判断一个对象是否属于某个类或其子类,或实现了某个接口,返回结果为布尔值。 13. **隐式转换与显式转换** - 隐式转换:无需程序员操作,系统自动完成的小范围到大范围的数据类型转换。 - 显式转换(类型强转...
本资源" EstruturaDados"似乎是一个与数据结构相关的学习资料,特别针对FATEC(可能是某个教育机构)的学生。"下载所有Pdf,可以在 下载课程"提示我们,这个压缩包可能包含一系列PDF文件,用于讲解数据结构的相关...
用插入法进行排序代码如下** 插入排序是一种简单的排序算法,其实现如下: ```java public class InsertionSort { public static void sort(int[] arr) { for (int i = 1; i ; i++) { int key = arr[i]; int j...
- **使用时机**:当某个属性或方法被所有对象共享时,应考虑使用静态修饰。 - **静态代码块**:用于在类加载时执行一些初始化代码。 - **代码块**:在类中定义的代码块,用于执行特定任务。包括构造代码块和局部...
【Java高分面试指南】是针对Java程序员面试的参考资料,涵盖了Java基础知识、OOP概念、数据结构等多个方面。以下是对这些知识点的详细说明: 1. **B/S架构和C/S架构**: - B/S架构(Browser/Server)是基于Web的...
- **指令标签**:如`<%@ page %>`, `<%@ include %>`, `<%@ taglib %>`, 用于设置页面属性、包含其他资源或引用标签库。 - **脚本元素**:如`<% %>`, `! %>`, `<%= %>`, 分别用于定义页面脚本、声明变量/方法以及...