问题描述: 有对象Student具有学号、姓名两个属性,请用两个List对一组student对象进行排序,要求首先按照姓名排序,然后按照学号排序。
以下只是部分代码:
//按照名字排序
public int compare(Student o1, Student o2) {
String name1 = o1.getStuName();
String name2 = o2.getStuName();
return name1.compareTo(name2);//按照stuName的字母顺序排序。
}
public int compare(Student o1, Student o2) {
int stuno1 = o1.getStuNo();
int stuno2 = o2.getStuNo();
int comparedResult = Collator.getInstance(Locale.CHINESE).compare(o1.getStuName(),o2.getStuName());
if(comparedResult == 0 ){ //这里表示比较的两条记录的stuName相同。
if(stuno1>stuno2)//这里控制stuno是按升序还是降序。
return 1;//这里控制stuname是按升序还是降序。
}
return 0;
}
输出结果:
排序前=======================================
stuNo:1,stuName:zhangsan
stuNo:6,stuName:liwen
stuNo:27,stuName:bandong
stuNo:19,stuName:kuge
stuNo:28,stuName:bandong
stuNo:3,stuName:xiezhonghua
stuNo:16,stuName:bandong
stuNo:12,stuName:sbf
排序中=======================================
stuNo:27,stuName:bandong
stuNo:28,stuName:bandong
stuNo:16,stuName:bandong
stuNo:19,stuName:kuge
stuNo:6,stuName:liwen
stuNo:12,stuName:sbf
stuNo:3,stuName:xiezhonghua
stuNo:1,stuName:zhangsan
排序后=======================================
stuNo:16,stuName:bandong
stuNo:27,stuName:bandong
stuNo:28,stuName:bandong
stuNo:19,stuName:kuge
stuNo:6,stuName:liwen
stuNo:12,stuName:sbf
stuNo:3,stuName:xiezhonghua
stuNo:1,stuName:zhangsan
详情请见附件。
分享到:
相关推荐
### 根据对象属性将对象排序 在编程领域中,我们经常会遇到需要对一组对象进行排序的需求。这种排序可以基于单个属性或者多个属性来进行。本文档将详细讲解如何通过对象的一个或多个属性来实现对象的排序,并支持...
在给定的代码段中,我们看到一个名为`manList`的方法,它的主要任务是将ArrayList对象转换为DataTable对象。这个方法首先创建了一个ArrayList实例`result`和一个DataTable实例`dt`。如果`result`不为空且包含至少一...
同时,为了提高代码的可读性和减少错误,应始终确保引入System.Collections命名空间,并正确实例化ArrayList对象。 在实际应用中,我们可以通过创建一个模拟的游戏场景来演示如何使用数组和ArrayList。例如,可以...
这里,`Comparator.comparing(Person::getAge)`创建了一个基于`Person`对象的`age`属性比较的`Comparator`,而`.reversed()`则将比较结果反转,实现了降序排序。 `Comparator`不仅可以用于`List`的排序,还可以在...
此外,SyncRoot属性可用于线程安全的同步访问,当多个线程需要同时访问ArrayList时,可以获取此属性的值作为锁定对象。 4. 多种构造函数:ArrayList提供了三种构造函数,方便在创建时初始化。无参构造函数创建一个...
创建一个自定义方法,传入List和比较属性,根据属性值去重。 ```java public static <T> List<T> removeDuplicates(List<T> list, Function, Object> attributeExtractor) { return list.stream() .collect...
在compare方法中,我们比较两个Student对象的age属性,并返回一个整数值,以便实现排序。 总结 在Java中,对类的对象进行排序可以通过两种方法实现:通过实现Comparable接口和使用Comparator接口。两种方法都可以...
Comparable接口中的compareTo方法用于指定对象的自然排序,而Comparator接口则提供了一个单独的比较器来比较两个对象。在集合中使用排序,通常会用到Collections工具类提供的sort方法。 在Java集合中,重要知识点...
本文将深入探讨如何使用Java实现List中对象的排序,特别是基于对象的属性进行排序。我们将以一个简单的例子来阐述,这个例子中有一个名为`News`的类,包含`id`、`title`和`hits`(点击数)等属性,我们将根据`hits`...
这里使用了增强型for循环,也叫foreach循环,遍历数组中的每个元素,并调用对象的方法获取其属性值。 在对象数组中查找特定对象,我们可以使用多种方法: 1. **线性搜索**:最简单但效率最低的方式是遍历整个数组,...
接下来,如果我们有一个包含多个用户名的列表,可以使用Java的集合框架,如`ArrayList`或`LinkedList`,结合`Collections.sort()`方法进行排序。假设我们有一个`List<String>`类型的`users`,我们可以这样做: ```...
数据结构是指在计算机中组织、存储和处理数据的方式,而面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它基于“对象”的概念,使得代码更加模块化、易于理解和维护。 首先,我们来深入了解数据...
在Java中,对象是类的实例,包含数据(属性)和行为(方法)。而SQL(结构化查询语言)是用于管理关系数据库的标准语言,包括创建、查询、更新和删除数据等操作。 JoSQL通过提供一个桥梁,允许开发者将SQL查询直接...
在`Person`类中实现`compareTo(Person other)`方法,可以根据`Person`对象的属性(如年龄、姓名等)来确定排序顺序。如果不想改变`Person`类,也可以在添加元素到SortedSet时提供一个Comparator实例。 例如,如果...
对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...
Java不支持像C++那样的结构体,因此当需要处理具有多个属性的对象时,我们会创建一个类来存储这些属性。在算法竞赛中,我们可能会遇到需要对这类对象数组进行排序的需求。这时,我们可以利用`Arrays.sort()`方法,...
- `HashSet`和`TreeSet`实现了`Set`接口,不包含重复元素,`HashSet`基于哈希表,而`TreeSet`则按照元素的自然顺序或自定义比较器进行排序。 - `HashMap`和`TreeMap`实现了`Map`接口,`HashMap`提供快速的查找,`...
在Java编程语言中,`Comparator`接口是用于比较对象的...无论是简单地比较数值还是基于多个属性的复杂排序,`Comparator`都能轻松应对。通过Lambda表达式的使用,编写`Comparator`实例变得更简洁,提高了代码的可读性。
在Java中,开发者可能使用内置的数据结构(如ArrayList、LinkedList)和算法(如排序、搜索)来处理这些问题。例如,通过遍历游戏场景中的对象,判断角色与障碍物之间的碰撞,或者使用A*算法寻找角色移动的最短路径...