日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

成绩表排名次

發(fā)布時(shí)間:2024/1/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 成绩表排名次 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一種方法

public static int[] Ranking(int[] score) {//臨時(shí)數(shù)組int[] temp = new int[score.length];List lis = new ArrayList();//把不重復(fù)的數(shù)據(jù)放進(jìn)集合里for (int x : score) {if (!lis.contains(x)) {lis.add(x);}}//從小到大排序Collections.sort(lis);//反向排序目的是把最大的放在第一位Collections.reverse(lis);//真正的名次就是下角標(biāo)+1for (int i = 0; i < score.length; i++) {temp[i] = lis.indexOf(score[i]) + 1;}return temp; }

如果數(shù)組的內(nèi)容是{1,2,2,2,3}? 那么名次是:3,2,2,2,1

有時(shí)候會(huì)把并列的名次也占位置。如果想要得到的結(jié)果是:5,2,2,2,1

那么就是下面的方法了

https://blog.csdn.net/u014298282/article/details/103680770

在這位博主的基礎(chǔ)上稍稍改進(jìn)了點(diǎn)

public class Rank {public static void main(String[] args) {test1();}private static void test1() {List<Person> list=getList();list.sort((x,y)->x.getAge()-y.getAge());//一般來(lái)說(shuō),分?jǐn)?shù)是按照大小排列的所以增加了下面一行代碼,如果需要從小到大排序,下面一行可以去掉Collections.reverse(list);int a=0,b=Integer.MIN_VALUE,c=0;for (Person person : list) {if (person.getAge().equals(b)){c++;}else {b=person.getAge();a=a+c+1;c=0;}person.setRank(a);}//上面的list是根據(jù)年齡由大到小或者有小到大排序的,打亂了原來(lái)的順序。//如果不需要打亂人名,那么就再次循環(huán)賦值一下List<Person> list1 = getList();for (Person p1: list1){for (Person p: list){if (p1.name.equals(p.name)){p1.setRank(p.getRank());}}}for (Person person : list1){System.out.println(person);}}private static List<Person> getList() {ArrayList<Person> list = new ArrayList<>();list.add(new Person("張三", 20));list.add(new Person("李四", 50));list.add(new Person("王五", 25));list.add(new Person("趙六", 25));list.add(new Person("marry", 35));list.add(new Person("jack", 35));list.add(new Person("ashe", 35));return list;}@Datastatic class Person {private String name;private Integer age;private Integer rank;public Person(String name, Integer age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", rank=" + rank +'}';}} }

輸出的結(jié)果如下:

Person{name='張三', age=20, rank=7}
Person{name='李四', age=50, rank=1}
Person{name='王五', age=25, rank=5}
Person{name='趙六', age=25, rank=5}
Person{name='marry', age=35, rank=2}
Person{name='jack', age=35, rank=2}
Person{name='ashe', age=35, rank=2}

總結(jié)

以上是生活随笔為你收集整理的成绩表排名次的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。