依据List内部对象的某字段进行排序的方法
List内部对象类IntString,test为测试用例类
用Collections.sort方法,实现对List的排序,需要重写Comparator方法
代码如下:
List里存放的实体
package org.iti.wxl.listobjectsort; public class IntString { private Integer no; private String str; public Integer getNo() { return no; } public void setNo(Integer no) { this.no = no; } public String getStr() { return str; } public void setStr(String str) { this.str = str; } @Override public String toString() { return "IntString [" + (no != null ? "no=" + no + ", " : "") + (str != null ? "str=" + str : "") + "]"; } }
package org.iti.wxl.listobjectsort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { List<IntString> islist = new ArrayList<IntString>(); IntString is1 = new IntString(); is1.setNo(1); is1.setStr("计091"); IntString is3 = new IntString(); is3.setNo(3); is3.setStr("计093"); IntString is2 = new IntString(); is2.setNo(2); is2.setStr("计092"); islist.add(is1); islist.add(is3); islist.add(is2); System.out.println(islist); Collections.sort(islist, new MyComparator()); System.out.println(islist); } } class MyComparator implements Comparator<Object> { @Override public int compare(Object o1, Object o2) { IntString iso1 = (IntString)o1; IntString iso2 = (IntString)o2; String str1 = iso1.getStr(); String str2 = iso2.getStr(); return str1.compareTo(str2); // Integer no1 = iso1.getNo(); // Integer no2 = iso2.getNo(); // if(no1 > no2){ // return 1; // }else if(no1 < no2){ // return -1; // }else{ // return 0; // } } }
如果是String类型的数据比较大小,Comparator方法里用str1.compareTo(str2) 方法,如果是数值比较大小,则用<,=,>比较,>返回1,=返回0,<返回-1。
相关推荐
通过实现这个接口,我们可以定义多个字段作为排序依据,例如,对于一个Student对象,我们可以按姓名、成绩或年龄来排序。为此,需要创建一个比较器: ```csharp public interface IComparer { int Compare(T x, T ...
自定义查询对象通常包含一组属性,这些属性对应于数据库查询条件,如:查询字段、排序依据、分页参数等。例如,可以创建一个`QueryObject`类,包含`String`类型的`searchKeyword`用于全文搜索,`List<Integer>`类型...
**2.4 先按一个字段排序,再按另一个字段排序** 可以使用`sorted`函数的`key`参数指定多个排序标准。例如:`sorted(items, key=itemgetter(1, 0))`。 **2.5 使用二分查找在有序序列中查找项** 可以使用二分查找...
- **概念**: 运行时获取程序集中的类型信息和元数据,创建对象实例,访问和修改字段、方法和属性。 - **用途**: 动态加载程序集,实现插件化编程。 #### 9. Lambda表达式 - **定义**: 简洁的匿名函数,通常用于作为...
在给出的例子中,由于方法内部进行了浮点数运算,因此返回类型应该是`double`。 ### 23. 软件危机的表现 - **知识点**:软件危机的表现形式。 - **解析**:软件危机的表现包括软件开发生产率低、软件质量难以控制...
查询参数包括要显示的字段、排序依据以及筛选条件,例如这里使用了"top10"来限制查询结果只返回前10条记录。 4. 字符串的格式化。在添加图片路径和公司链接时,使用了StringBuilder的AppendFormat方法。这种格式化...
- 当打开一个建立了结构复合索引的数据表时,记录的排序依据通常是**主索引标识**。如果不存在主索引,则可能会按照第一个索引标识或其他特定规则排序。 ### 软件生命周期的需求分析阶段 - **需求分析**:在这个...
7. TreeSet与Comparable接口:若无自定义比较器,TreeSet会依据元素实现的Comparable接口来排序元素。 8. 子程序调用的数据结构:栈。栈是一种后进先出(LIFO)的数据结构,常用于函数调用的上下文保存。 9. 标准...
- **解析**:报表的数据属性主要包括记录源、排序依据和筛选条件等,而打印版式属于报表的布局属性。因此,本题的答案为**C**。 #### 计算机网络 - **知识点**:计算机网络的基础概念。 - **解析**:计算机网络是由...
`max`和`min`找到元组中的最大和最小值,`iterable`表示可以迭代的对象,`key`指定了排序依据,`function`是自定义函数,`stop`用于`range`函数中指定结束值,`object`是Python中的基本数据结构。 七、列表 列表...
- 在计算机中,字符串的排序依据ASCII码值进行比较。 - 数字字符串“12”在ASCII表中以“1”开始,“5”和“6”的ASCII码值比“1”大,但因为字符串“5”和“6”长度不同,因此在比较时,首先比较第一个字符,之后...
- 排序依据:报表数据的排序规则。 - 筛选:报表数据的过滤条件。 - **非报表数据属性:** 打印版式,这是报表的设计属性而非数据属性。 ### 输入设备的作用 **知识点概述:** - **输入设备:** 用于向计算机...
- **题目解析**:`OnChange()`事件发生在用户更改字段内容时,例如更改文本框(`<input type="text">`)中的内容、选择列表框中的项等。因此,正确答案为D。 #### 题目22:E-R模型到关系模型的转换 - **知识点概述...
16. SQL列表查询:在FoxPro等数据库管理系统中,LIST命令用于列出指定字段,FOR条件用于筛选数据。 17. 索引错误理解:一个表可以建立多个索引,索引的作用包括加快查询速度和提供数据排序依据。 18. 关键字:在...
之后,可以通过`sort()`方法对列表进行排序。对于给出的代码片段,`ss`列表将包含从字符串"jzzszyj"中提取的不同字符,并按字母顺序排序。由于未给出完整的代码实现,无法确定最终的输出结果。但是,该过程展示了...