`
zeyuphoenix
  • 浏览: 57981 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

收集面试题(二十四)(排序自定义类)

阅读更多

// 用户自己开发一个学生类,包括姓名\学号\成绩 三个属性,现在用户希望能使用
// 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面试题集(答案解析)1

    阿里巴巴的Android面试题集主要涵盖了计算机基础、数据结构与算法、Java编程、Android技术以及一些扩展领域的知识。以下是对这些知识点的详细解析: **第一章 计算机基础面试题** 这部分通常包括网络、操作系统和...

    2018最新最全java高级工程师面试题

    2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档将涵盖JVM原理、并发编程、设计模式、数据结构与算法、Spring框架、数据库设计与优化、网络协议等多个领域。 1. **JVM(Java虚拟机)** ...

    sql面试题,java面试题

    首先,让我们关注SQL面试题。SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、更新、插入和删除等操作。常见的SQL面试题涵盖以下几个方面: 1. 数据库基本概念:理解数据库、表、...

    Java面试题笔试题大全

    面试题可能涉及如何使用反射进行对象实例化、调用方法,或者注解的自定义和使用场景。 6. **JVM**:理解Java虚拟机的工作原理,包括类加载机制、内存模型(堆、栈、方法区、本地方法栈等)、垃圾收集算法和调优策略...

    最新更新!新增300+题目和github资源!史上最全python面试题搜集.zip

    该压缩包的核心内容是"python面试题搜集",这可能是一个文档或一系列文档,包含了精心挑选的Python面试问题,涵盖了语言基础、数据结构、算法、面向对象编程、异常处理、模块和包、网络编程、多线程、数据库操作、...

    java 面试题大全 各大公司面试题总汇

    这份"java面试题大全"集合了各大公司的面试题目,对于准备Java开发者面试的求职者来说是一份宝贵的资源。下面,我们将深入探讨Java面试中常见的知识点,以及如何通过这些题目来提升自己的技能。 1. **基础语法**:...

    中兴软创java面试题

    【中兴软创Java面试题】是一份2018年的面试资料,涵盖了针对Java开发者在中兴软创面试过程中可能会遇到的问题。这份资源对于准备Java面试,特别是中兴软创公司的面试者来说,是非常宝贵的参考资料。以下是根据这份...

    高级Java经典面试题2019

    本文总结了《高级Java经典面试题2019》中关于并发编程、JVM和Spring框架等方面的重要知识点。通过深入理解这些概念和技术,可以帮助开发者更好地掌握Java核心技术,提高面试竞争力。希望本文能为读者提供有益的帮助...

    java面试题超详细

    Java面试题超详细解答 Java作为一门广泛应用的编程语言,其面试题目涵盖了众多知识点,从基础语法到高级特性,从理论概念到实际应用。这里我们将深入探讨这些面试题所涉及的Java技术要点。 1. **Java基础** - **...

    Java华为面试真题

    - **垃圾收集**:理解Java垃圾收集机制,包括GC的工作原理和几种常见的垃圾收集器。 - **内存区域**:堆、栈、方法区、程序计数器、本地方法栈的作用及生命周期。 7. **JVM优化**: - **JVM运行参数**:如-Xms、...

    黑马面试题总结

    ### 黑马面试题总结 #### 一、进程与线程状态 **知识点:** - **进程与线程的区别:** - **进程**:是系统进行资源分配和调度的基本单位,每个进程都有独立的代码和数据空间(程序上下文)。 - **线程**:是...

    全套java面试题

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、高效性和丰富的类库而闻名。在准备Java面试时,理解并...提供的"全套java面试题"资料可以作为复习和自我测试的重要参考,帮助你全面梳理和巩固Java知识体系。

    N道c#面试题(经典奉献)

    【C#面试题详解】 1. **Property与Attribute的区别**: Property是C#中用于封装类内部数据的访问机制,提供了一种控制对私有字段的访问方式,它可以带有getter和setter方法,确保数据的安全性。Attribute则是一种...

    面试题及面试题记录.zip

    这份"面试题及面试题记录.zip"文件包含两份资源:Java面试题宝典V7.pdf和面试真题汇总.xlsx,它们提供了丰富的面试问题和可能的答案,帮助求职者准备Java相关的面试。以下是基于这些文件名推测的一些重要知识点: 1...

    JAVA面试题解惑系列.rar

    Java面试题解惑系列主要涵盖了Java编程语言的核心概念、进阶技术以及在面试中常见的问题。这个压缩包可能包含了两本书籍,一本是"JAVA面试题解惑系列.pdf",另一本是"臧圩人--JAVA面试题解惑系列合集.pdf"。这些资源...

    百度官方面试题,这个同学面试了22k

    【标题】中的“百度官方面试题,这个同学面试了22k”意味着这是一份与百度公司面试相关的题目集,其中可能涵盖了使某位应聘者获得22k月薪的必要技能和知识。这类题目通常会涉及到Java编程语言,因为“java”是给定的...

    JAVA面试题(收集整理Word版)

    2. **数据结构与算法**:面试中常涉及数组、链表、栈、队列、树(二叉树、平衡树如AVL和红黑树)、图等数据结构,以及排序(如冒泡、选择、插入、快速、归并排序)、查找(如线性、二分查找)等算法。 3. **多线程*...

    JAVA面试题2.rar

    【JAVA面试题解析】 在Java面试中,面试官通常会关注候选人的基础知识、编程能力、设计模式、并发处理、集合框架、JVM优化等多个方面。以下是对这些关键知识点的详细阐述: 1. **基础语法与面向对象**:面试通常会...

    世上最全的Java面试题合集

    1. **基础语法**:面试题可能会包括Java的基础概念,如数据类型、变量、运算符、流程控制语句(if、for、while等)、方法、类和对象的定义以及封装、继承和多态等面向对象特性。 2. **异常处理**:理解try-catch-...

    java面试题集(网上全部题目都在这里不用去别处找了!)

    1. **基础语法**:Java100题、java40题和java38题可能包含了对Java基础语法的考察,如数据类型、变量、运算符、控制流(if、switch、for、while)、类与对象、封装、继承、多态等概念。 2. **面向对象**:作为面向...

Global site tag (gtag.js) - Google Analytics