// 用户自己开发一个学生类,包括姓名\学号\成绩 三个属性,现在用户希望能使用
// java.util.Arrays.sort()方法来根据学员成绩,排序一个学生类数组,请问要如何实现?
//主要是要想到用Comparator来实现,熟悉api是关键
import java.util.Arrays;
import java.util.Comparator;
/**
* The Class SortStudent.
*/
public class SortStudent {
private static Student[] students = null;
/**
* The main method.
*
* @param args
* the arguments
*/
public static void main(String[] args) {
initData();
Arrays.sort(students, new ComparatorStudent());
for (int i = 0; i < students.length; i++) {
System.out.println(students[i].toString());
}
}
private static void initData() {
students = new Student[6];
students[0] = new Student("张三", 1, 87.0f);
students[1] = new Student("李四", 3, 23);
students[2] = new Student("王五", 4, 57.0f);
students[3] = new Student("赵柳", 2, 187.0f);
students[4] = new Student("小七", 6, 47.0f);
students[5] = new Student("八哥", 8, 57.0f);
}
}
/**
* The Class ComparatorStudent.
*/
class ComparatorStudent implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
return (int) (o1.getScore() - o2.getScore());
}
}
/**
* The Class Student.
*/
class Student {
/** The name. */
private String name = null;
/** The id. */
private int id = 0;
/** The score. */
private double score = 0d;
/**
* Instantiates a new student.
*/
public Student() {
}
/**
* Instantiates a new student.
*
* @param name
* the name
* @param id
* the id
* @param score
* the score
*/
public Student(String name, int id, double score) {
super();
this.name = name;
this.id = id;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "name: " + this.name + " id: " + this.id + " score: "
+ this.score;
}
}
分享到:
相关推荐
阿里巴巴的Android面试题集主要涵盖了计算机基础、数据结构与算法、Java编程、Android技术以及一些扩展领域的知识。以下是对这些知识点的详细解析: **第一章 计算机基础面试题** 这部分通常包括网络、操作系统和...
2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档将涵盖JVM原理、并发编程、设计模式、数据结构与算法、Spring框架、数据库设计与优化、网络协议等多个领域。 1. **JVM(Java虚拟机)** ...
首先,让我们关注SQL面试题。SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、更新、插入和删除等操作。常见的SQL面试题涵盖以下几个方面: 1. 数据库基本概念:理解数据库、表、...
面试题可能涉及如何使用反射进行对象实例化、调用方法,或者注解的自定义和使用场景。 6. **JVM**:理解Java虚拟机的工作原理,包括类加载机制、内存模型(堆、栈、方法区、本地方法栈等)、垃圾收集算法和调优策略...
该压缩包的核心内容是"python面试题搜集",这可能是一个文档或一系列文档,包含了精心挑选的Python面试问题,涵盖了语言基础、数据结构、算法、面向对象编程、异常处理、模块和包、网络编程、多线程、数据库操作、...
这份"java面试题大全"集合了各大公司的面试题目,对于准备Java开发者面试的求职者来说是一份宝贵的资源。下面,我们将深入探讨Java面试中常见的知识点,以及如何通过这些题目来提升自己的技能。 1. **基础语法**:...
【中兴软创Java面试题】是一份2018年的面试资料,涵盖了针对Java开发者在中兴软创面试过程中可能会遇到的问题。这份资源对于准备Java面试,特别是中兴软创公司的面试者来说,是非常宝贵的参考资料。以下是根据这份...
本文总结了《高级Java经典面试题2019》中关于并发编程、JVM和Spring框架等方面的重要知识点。通过深入理解这些概念和技术,可以帮助开发者更好地掌握Java核心技术,提高面试竞争力。希望本文能为读者提供有益的帮助...
Java面试题超详细解答 Java作为一门广泛应用的编程语言,其面试题目涵盖了众多知识点,从基础语法到高级特性,从理论概念到实际应用。这里我们将深入探讨这些面试题所涉及的Java技术要点。 1. **Java基础** - **...
- **垃圾收集**:理解Java垃圾收集机制,包括GC的工作原理和几种常见的垃圾收集器。 - **内存区域**:堆、栈、方法区、程序计数器、本地方法栈的作用及生命周期。 7. **JVM优化**: - **JVM运行参数**:如-Xms、...
### 黑马面试题总结 #### 一、进程与线程状态 **知识点:** - **进程与线程的区别:** - **进程**:是系统进行资源分配和调度的基本单位,每个进程都有独立的代码和数据空间(程序上下文)。 - **线程**:是...
Java是一种广泛使用的面向对象的编程语言,以其平台独立性、高效性和丰富的类库而闻名。在准备Java面试时,理解并...提供的"全套java面试题"资料可以作为复习和自我测试的重要参考,帮助你全面梳理和巩固Java知识体系。
【C#面试题详解】 1. **Property与Attribute的区别**: Property是C#中用于封装类内部数据的访问机制,提供了一种控制对私有字段的访问方式,它可以带有getter和setter方法,确保数据的安全性。Attribute则是一种...
这份"面试题及面试题记录.zip"文件包含两份资源:Java面试题宝典V7.pdf和面试真题汇总.xlsx,它们提供了丰富的面试问题和可能的答案,帮助求职者准备Java相关的面试。以下是基于这些文件名推测的一些重要知识点: 1...
Java面试题解惑系列主要涵盖了Java编程语言的核心概念、进阶技术以及在面试中常见的问题。这个压缩包可能包含了两本书籍,一本是"JAVA面试题解惑系列.pdf",另一本是"臧圩人--JAVA面试题解惑系列合集.pdf"。这些资源...
【标题】中的“百度官方面试题,这个同学面试了22k”意味着这是一份与百度公司面试相关的题目集,其中可能涵盖了使某位应聘者获得22k月薪的必要技能和知识。这类题目通常会涉及到Java编程语言,因为“java”是给定的...
2. **数据结构与算法**:面试中常涉及数组、链表、栈、队列、树(二叉树、平衡树如AVL和红黑树)、图等数据结构,以及排序(如冒泡、选择、插入、快速、归并排序)、查找(如线性、二分查找)等算法。 3. **多线程*...
【JAVA面试题解析】 在Java面试中,面试官通常会关注候选人的基础知识、编程能力、设计模式、并发处理、集合框架、JVM优化等多个方面。以下是对这些关键知识点的详细阐述: 1. **基础语法与面向对象**:面试通常会...
1. **基础语法**:面试题可能会包括Java的基础概念,如数据类型、变量、运算符、流程控制语句(if、for、while等)、方法、类和对象的定义以及封装、继承和多态等面向对象特性。 2. **异常处理**:理解try-catch-...
1. **基础语法**:Java100题、java40题和java38题可能包含了对Java基础语法的考察,如数据类型、变量、运算符、控制流(if、switch、for、while)、类与对象、封装、继承、多态等概念。 2. **面向对象**:作为面向...