import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Comparator;
public class Test4 {
public static void main(String[] args) {
Random ran=new Random();
List list=new ArrayList();
for(int i=0;i<10;i++){
Student s=new Student();
s.setId(i+1);
s.setName(createName());
s.setAge(ran.nextInt(6)+15);
list.add(s);
}
Collections.sort(list,new StudentComparator());
/*for(int i=0;i<list.size()-1;i++){
for(int j=i+1;j<list.size();j++){
Student s1=(Student)list.get(i);
Student s2=(Student)list.get(j);
int age1=s1.getAge();
int age2=s2.getAge();
if(age1>age2){
//list.set(i, s2);
//list.set(j, s1);
Collections.swap(list, i, j);
}
}
}*///也可以这样排序
for(int i=0;i<list.size();i++){
Student s=(Student)list.get(i);
System.out.println(s);
}
}
public static String createName(){
Random ran=new Random();
int len=ran.nextInt(5)+6;
String name="";
for(int i=0;i<len;i++){
name+=(char)(ran.nextInt(26)+'a');
}
return name;
}
}
class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return id+"\t"+name+"\t"+age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + id;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
class StudentComparator implements Comparator{
public int compare(Object o1, Object o2) {
Student s1=(Student)o1;
Student s2=(Student)o2;
return s1.getAge()-s2.getAge();
}
}
打印结果:
7 joziywjc 15
9 sqclbqoqpv 15
3 qkpxii 16
4 rsoohwbx 16
8 skjolpg 16
1 swzkdmjh 17
10 vdvpxdu 17
2 awsjwwqneq 18
5 gfiashjeyb 19
6 evjlfdqfrt 19
分享到:
相关推荐
在实验设计中,每个进程都拥有一个进程控制块(PCB),包含进程ID、状态、优先级和生命周期等信息。进程状态可以是就绪(0)或运行(1),优先级范围在0到49之间随机生成。实验流程包括生成进程、调度执行、状态转换...
(2) 查找昵称为 “QQ” 的用户,并按ID降序排列: ```sql SELECT * FROM tableQQ WHERE Nickname = 'QQ' ORDER BY ID DESC; ``` (3) 删除ID为1234的用户记录: ```sql DELETE FROM tableQQ WHERE ID = 1234; ``` (4)...
5、工作表排序:工作簿中的若干工作表顺序混乱查找不方便,软件的工作表排序功能可以帮您将工作表按间序做升序与降序排列。 (六)Word文档中的表与Excel工作簿中的工作表之间的转化 1、Word转Excel:把若干个Word...
每个节点可以包含参赛者的ID、姓名、分数等信息。链表的优点在于其动态性,可以在运行时调整大小,适合于存储不断变化的比赛成绩。 2. 数组:数组可能用于存储固定数量的参赛者或比赛轮次。例如,如果每个参赛者在...
例如,存储一个班级的所有学生信息、管理新闻标题列表等。传统的数组虽然简单易用,但在面对不确定数量的对象存储以及更复杂的对象管理需求时显得力不从心。Java集合框架正是为了解决这些问题而设计的。 #### 三、...
接着,随机为每个班级分配课程,并根据课程数量对班级进行排序。随后通过循环遍历这20个时间片,对每个时间片内的所有班级进行处理: 1. **获取教室资源**:按照教室容量大小进行排序。 2. **匹配教室**:比较教室...
题目询问在下列排序算法中,哪个算法的元素移动次数与关键字的初始排列顺序无关? **排序算法简介**: - **直接插入排序**:每次将一个元素插入到已排序序列中的适当位置,移动次数与初始顺序相关。 - **起泡排序**...
为了用数组存储对象,例如存储一个班级的学生信息,我们需要首先定义一个`Student`类。`Student`类应包含属性如学号、姓名、各科成绩和总成绩,并提供相应的构造方法、getter和setter方法、`toString()`方法、`...
2. **数组**:如果交易数据有固定的大小和顺序,数组可以提供快速的随机访问。例如,可以用数组来存储用户账户信息,通过索引快速查找特定用户的资料。 3. **树结构**:在管理用户账户、证券信息或交易订单时,树...
compareTo方法用于比较两个对象的大小,实验中按照价格进行排序,通过`Arrays.sort(products)`实现了排序。 7. **StringBuilder**: - 用于构建字符串,比String更高效,因为String是不可变的,每次修改都会创建新...
- **Shuffle阶段**:将Map阶段产生的中间结果按照键进行排序,并将相同的键分组在一起。 - **Reduce阶段**:对每一个分组的键执行汇总操作,将所有值相加得到最终的单词计数。输出结果为单词及其出现次数。 **伪...
4. **树结构**:如果需要根据特定条件(如部门、入职日期等)对员工进行排序或分组,二叉搜索树或其他类型的树结构(如B树)可以提供高效的查找和遍历功能。 5. **队列和栈**:在处理工资发放或审批流程时,队列...
二叉树是每个节点最多有两个子节点的树形结构,广泛应用于搜索和排序;平衡树通过保持树的高度平衡来确保搜索效率;B树和B+树常用于数据库和文件系统的索引,支持高效的范围查询。 3. 图结构:由顶点和边构成,适合...
实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...
实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...
按指定字段排序查询结果: ```java Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table ORDER BY column DESC"); ``` **5.3.6 分析结果集查询** 分析查询结果...
而且由于编译时忽略注释部分,所以注释内容不会增加最终产生的可执行程序的大小。适当地使用注释,能够提高程序的可读性。在C++中,有两种给出注释的方法:一种是延用C语言方法,使用"/*"和"*/"括起注释文字。另一种...
题目描述正确,查询所有数据并按学生学号升序排列的SQL语句是`SELECT * FROM tbl_student ORDER BY stu_id ASC;`。 #### 27. 面向对象语言特征 **题目描述:** 不属于面向对象语言的概念。 **知识点解析:** 面向...
- **排序查询**:按照某一字段的值进行升序或降序排列。 - **分析结果集查询**:处理查询结果集,提取所需数据。 **5.4 更新记录** 使用SQL UPDATE语句来更新数据库中的记录。 **5.5 添加记录** 使用SQL INSERT...
- **5.3.5 排序查询**:按特定字段排序结果集。 - **5.3.6 分析结果集查询**:分析结果集的元数据。 - **5.3.7 使用统配符查询**:使用SQL中的LIKE关键字。 - **5.4 更新记录** - 使用UPDATE语句修改数据库中的...