iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java使用LinkedHashMap进行分数排序
  • 874
分享到

Java使用LinkedHashMap进行分数排序

javalinkedhashmap排序 2023-05-31 14:05:20 874人浏览 八月长安
摘要

分数排序的特殊问题在java中实现排序远比C/C++简单,我们只要让集合中元素对应的类实现Comparable接口,然后调用Collections.sort();方法即可.这种方法对于排序存在许多相同元素的情况有些浪费,明显即使值相等,两个

分数排序的特殊问题

在java中实现排序远比C/C++简单,我们只要让集合中元素对应的类实现Comparable接口,然后调用Collections.sort();方法即可.
这种方法对于排序存在许多相同元素的情况有些浪费,明显即使值相等,两个元素之间也要比较一下,这在现实中是没有意义的.
典型例子就是学生成绩统计的问题,例如高考中,满分是150,成千上万的学生成绩都在0-150之间,平均一个分数的人数成百上千,这时如果排序还用传统方法明显就浪费了.

进一步思考

成绩既然有固定的分数等级,我们可以把相同等级的成绩放在一起,以100分为满分计,共分一百个等级,来一个成绩就归入固定的档,要得到排序结果时可以从低档取到高档,取出来自然就是排序的结果.
接下来是确定数据结构的问题,档次-学生群这样的自然是key-value结构,但Map中的Hashtable和HashMap都不能保持插入时的顺序,虽然我们可以从固定的档次取名单,但这样略嫌不方便,我们需要更好的数据结构,它既以键值的形式存储数据,又能保持插入时的顺序.

LinkedHashMap横空出世

LinkedHashMap正是这样一个数据结构,它”在HashMap的基础上增加了一个双向链表,由此LinkedHashMap既能以哈希表的形式存储数据,又能保持查询时的顺序.”
下页就是进行排序用的类,它在构造实例时先创建好分数档次,加入学生成绩时自动归档,要取出排序的学生的成绩时只要按档次输出即可.

ScoreSorter类

辅助类Student

package com.junglesong;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;public class Student implements Comparable{  private String name;  private int score;    public Student(String name,int score){    this.name=name;    this.score=score;  }    public int compareTo(Object obj){    Student another=(Student)obj;        return this.score-another.score;  }    public String toString(){    return "学生姓名="+name+" 分数="+score;  }  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public int getScore() {    return score;  }  public void setScore(int score) {    this.score = score;  }    public static void main(String[] args){    //-----------老排序方案-----------            //-----------新排序方案-----------    TimeTest newSortTest=new TimeTest();    ScoreSorter sorter2=new ScoreSorter(100);        Random random=new Random();    for(int i=0;i<1000;i++){      sorter2.addStudent(new Student("学生"+i,random.nextInt(100)));    }       List<Student> ls=sorter2.getSortedScores();    //for(Student student:sorter2.getSortedScores()){    //  System.out.println(student);    //}    newSortTest.end("新排序方案耗时");    }} 

--结束END--

本文标题: Java使用LinkedHashMap进行分数排序

本文链接: https://www.lsjlt.com/news/226317.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java使用LinkedHashMap进行分数排序
    分数排序的特殊问题在java中实现排序远比C/C++简单,我们只要让集合中元素对应的类实现Comparable接口,然后调用Collections.sort();方法即可.这种方法对于排序存在许多相同元素的情况有些浪费,明显即使值相等,两个...
    99+
    2023-05-31
    java linkedhashmap 排序
  • spark中如何使用groupByKey进行分组排序
    今天小编给大家分享一下spark中如何使用groupByKey进行分组排序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。任务...
    99+
    2023-07-05
  • Java使用Collections.sort对中文进行排序方式
    目录使用Collections.sort对中文进行排序Collections.sort 排序 注解使用Collections.sort对中文进行排序 使用collections.so...
    99+
    2024-04-02
  • Java 程序对数组元素进行降序排序
    对给定的数组进行降序排序,即将元素从大到小排列。 例子: 输入:数组 = {2, 6, 23, 98, 24, 35, 78} 输出: [98, 78, 35, 24, 23, 6, 2] 输入:数组...
    99+
    2023-10-10
    java 排序算法 算法
  • 再JAVA中如何使用qsort对类进行排序?
    目录 结论:  解析:  结论:  import java.util.Arrays;class Person implements Comparable{ public String name; public int age...
    99+
    2023-08-31
    java 排序算法 算法 开发语言
  • python使用sorted函数对列表进行排序
    在python中使用sorted函数对列表进行排序的方法sorted:sorted()函数的作用是对所有可迭代的对象进行排序操作。sorted()函数语法:sorted(iterable, key=None, reverse=False) ...
    99+
    2024-04-02
  • 怎么在java中对数组进行排序
    这期内容当中小编将会给大家带来有关怎么在java中对数组进行排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统...
    99+
    2023-06-14
  • java怎么对list进行排序
    Java中可以使用Collections.sort()方法对List进行排序。具体步骤如下:1. 导入java.util包中的Col...
    99+
    2023-09-14
    java
  • java中怎么使用Collections.reverse对list集合进行降序排序
    这篇文章主要讲解了“java中怎么使用Collections.reverse对list集合进行降序排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中怎么使用Collections....
    99+
    2023-06-21
  • 使用php怎么对数组进行降序或升序排序
    使用php怎么对数组进行降序或升序排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支...
    99+
    2023-06-14
  • 使用C#中的Array.Sort函数对数组进行排序
    标题:C#中使用Array.Sort函数对数组进行排序的示例正文:在C#中,数组是一种常用的数据结构,经常需要对数组进行排序操作。C#提供了Array类,其中有Sort方法可以方便地对数组进行排序。本文将演示如何使用C#中的Array.So...
    99+
    2023-11-18
    C# Array sort
  • Java stream sorted怎么使用Comparator进行多字段排序
    这篇文章主要介绍了Java stream sorted怎么使用Comparator进行多字段排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java stream so...
    99+
    2023-07-05
  • Java如何使用Collections.sort对中文进行排序方式
    本篇文章为大家展示了Java如何使用Collections.sort对中文进行排序方式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用Collections.sort对中文进行排序使用collec...
    99+
    2023-06-25
  • 怎么使用ThinkPHP5进行数据库查询排序
    这篇文章主要讲解了“怎么使用ThinkPHP5进行数据库查询排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用ThinkPHP5进行数据库查询排序”吧!在进行数据库查询时,排序是一个...
    99+
    2023-07-05
  • 使用Python的sorted()函数对列表进行排序
    使用Python的sorted()函数对列表进行排序Python是一种功能强大的编程语言,提供了许多内置的函数和方法来帮助开发人员处理不同的任务。其中一个非常有用的函数是sorted()函数,它可以用于对列表进行排序。sorted()函数接...
    99+
    2023-11-18
    Python sorted() 列表排序
  • 如何使用 Go 语言对数组进行排序?
    Go 语言是一门现代化的编程语言,它拥有良好的并发支持和高效的内存管理,被广泛应用于网络编程、分布式系统、云计算等领域。在 Go 语言中,数组是一种常见的数据结构,它可以用来存储一组具有相同类型的元素。本文将介绍如何使用 Go 语言对数组进...
    99+
    2023-10-07
    数组 git 日志
  • 如何使用SQL语句在MySQL中进行数据排序和分组?
    如何使用SQL语句在MySQL中进行数据排序和分组?在数据库中,我们经常需要对数据进行排序和分组以满足不同的需求。MySQL提供了强大的SQL语句来实现这些操作。本文将介绍如何使用SQL语句在MySQL中进行数据排序和分组,并提供具体的代码...
    99+
    2023-12-17
    分组 SQL语句 数据排序
  • php对数组进行排序不用函数
    PHP是一门流行的脚本语言,它具有广泛的应用,可以开发Web应用程序、桌面应用程序和游戏等。在PHP中,数组是非常常用的数据结构,它提供了许多有用的功能,如遍历、添加、删除、排序等。在本文中,我们将探讨如何使用PHP来对数组进行排序,而不使...
    99+
    2023-05-23
  • spark中使用groupByKey进行分组排序的示例代码
    任务需求:已知RDD[(query:String, item_id:String, imp:Int, clk:Int)],要求找到每个query对应的点击最多的前2个item_id,...
    99+
    2023-03-09
    spark使用groupByKey分组排序 spark分组排序
  • Java数据结构七大排序使用分析
    目录一、插入排序1、直接插入排序2、希尔排序二、选择排序1、选择排序2、堆排序三、交换排序1、冒泡排序2、快速排序四、归并排序五、排序算法的分析一、插入排序 1、直接插入排序 当插入...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作