`
泡面加蛋
  • 浏览: 5021 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

随机产生10个学生,按ID大小排列

阅读更多

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)...

    Excel新增工具集

    5、工作表排序:工作簿中的若干工作表顺序混乱查找不方便,软件的工作表排序功能可以帮您将工作表按间序做升序与降序排列。 (六)Word文档中的表与Excel工作簿中的工作表之间的转化 1、Word转Excel:把若干个Word...

    数据结构课程设计-大奖赛评分系统设计.7z

    每个节点可以包含参赛者的ID、姓名、分数等信息。链表的优点在于其动态性,可以在运行时调整大小,适合于存储不断变化的比赛成绩。 2. 数组:数组可能用于存储固定数量的参赛者或比赛轮次。例如,如果每个参赛者在...

    java集合框架

    例如,存储一个班级的所有学生信息、管理新闻标题列表等。传统的数组虽然简单易用,但在面对不确定数量的对象存储以及更复杂的对象管理需求时显得力不从心。Java集合框架正是为了解决这些问题而设计的。 #### 三、...

    java排课算法核心代码及思想

    接着,随机为每个班级分配课程,并根据课程数量对班级进行排序。随后通过循环遍历这20个时间片,对每个时间片内的所有班级进行处理: 1. **获取教室资源**:按照教室容量大小进行排序。 2. **匹配教室**:比较教室...

    Java 语言程序设计:第7章对象群体的组织.ppt

    为了用数组存储对象,例如存储一个班级的学生信息,我们需要首先定义一个`Student`类。`Student`类应包含属性如学号、姓名、各科成绩和总成绩,并提供相应的构造方法、getter和setter方法、`toString()`方法、`...

    网上交易系统,数据结构课程设计

    2. **数组**:如果交易数据有固定的大小和顺序,数组可以提供快速的随机访问。例如,可以用数组来存储用户账户信息,通过索引快速查找特定用户的资料。 3. **树结构**:在管理用户账户、证券信息或交易订单时,树...

    实验05 集合类与泛型 实验报告.docx

    compareTo方法用于比较两个对象的大小,实验中按照价格进行排序,通过`Arrays.sort(products)`实现了排序。 7. **StringBuilder**: - 用于构建字符串,比String更高效,因为String是不可变的,每次修改都会创建新...

    2017年山东大学大数据管理与分析考试题

    - **Shuffle阶段**:将Map阶段产生的中间结果按照键进行排序,并将相同的键分组在一起。 - **Reduce阶段**:对每一个分组的键执行汇总操作,将所有值相加得到最终的单词计数。输出结果为单词及其出现次数。 **伪...

    人事工资管理系统 数据结构

    4. **树结构**:如果需要根据特定条件(如部门、入职日期等)对员工进行排序或分组,二叉搜索树或其他类型的树结构(如B树)可以提供高效的查找和遍历功能。 5. **队列和栈**:在处理工资发放或审批流程时,队列...

    数据结构清华版本答案

    二叉树是每个节点最多有两个子节点的树形结构,广泛应用于搜索和排序;平衡树通过保持树的高度平衡来确保搜索效率;B树和B+树常用于数据库和文件系统的索引,支持高效的范围查询。 3. 图结构:由顶点和边构成,适合...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...

    JSP教程文档_从入门到精通_一步一步学习

    按指定字段排序查询结果: ```java Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table ORDER BY column DESC"); ``` **5.3.6 分析结果集查询** 分析查询结果...

    语言程序设计课后习题答案

    而且由于编译时忽略注释部分,所以注释内容不会增加最终产生的可执行程序的大小。适当地使用注释,能够提高程序的可读性。在C++中,有两种给出注释的方法:一种是延用C语言方法,使用"/*"和"*/"括起注释文字。另一种...

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

    题目描述正确,查询所有数据并按学生学号升序排列的SQL语句是`SELECT * FROM tbl_student ORDER BY stu_id ASC;`。 #### 27. 面向对象语言特征 **题目描述:** 不属于面向对象语言的概念。 **知识点解析:** 面向...

Global site tag (gtag.js) - Google Analytics