「分组排序java」分组排序取每组前五

博主:adminadmin 2023-01-26 05:30:06 385

本篇文章给大家谈谈分组排序java,以及分组排序取每组前五对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA中对String数组根据字符长度进行分组并且排序

好像也很复杂...

String[] str = {"1", "2", "3", "66", "54", "513", "323", "12", "121"};

MapInteger, ListString map = new HashMapInteger, ListString(); //按照长度区分数据

SetInteger indexSet = new HashSetInteger(); //长度去重

for (String string : str) {

    int length = string.length();

    ListString list = map.get(length);

    if (list == null) {

        list = new ArrayListString();

    }

    list.add(string);

    Collections.sort(list); //默认排序

    indexSet.add(length);

    map.put(length,list);

}

ListInteger indexList = new ArrayListInteger();

for (Integer integer : indexSet){

    indexList.add(integer);

}

Collections.sort(indexList); //长度默认排序

JSONArray jsonArray = new JSONArray();

for (Integer integer : indexList){

    ListString valueList = map.get(integer);

    String[] strings = valueList.toArray(new String[valueList.size()]);

    jsonArray.add(strings);

}

System.out.println(jsonArray.toString());

java 将第二列根据第一列分组实现从小到大排序

public static void main(String[] args) {

// 初始化数据

ListListInteger table = new ArrayList();

ListInteger row1 = new ArrayList(2);

row1.add(0);

row1.add(2);

ListInteger row2 = new ArrayList(2);

row2.add(0);

row2.add(7);

ListInteger row3 = new ArrayList(2);

row3.add(0);

row3.add(1);

ListInteger row4 = new ArrayList(2);

row4.add(1);

row4.add(7);

ListInteger row5 = new ArrayList(2);

row5.add(1);

row5.add(5);

ListInteger row6 = new ArrayList(2);

row6.add(1);

row6.add(2);

ListInteger row7 = new ArrayList(2);

row7.add(1);

row7.add(4);

table.add(row1);

table.add(row2);

table.add(row3);

table.add(row4);

table.add(row5);

table.add(row6);

table.add(row7);

// 分组

MapInteger, ListListInteger groups = new HashMap(2);

for (ListInteger row : table) {

Integer firstCol = row.get(0);

ListListInteger groupItem = groups.getOrDefault(firstCol, new ArrayList());

// 添加到分组

groupItem.add(row);

groups.put(firstCol, groupItem);

}

// 分组内排序

for (ListListInteger groupItem : groups.values()) {

groupItem.sort((item1, item2) - {

return item1.get(1).compareTo(item2.get(1));

});

}

// 打印到控制台

for (Integer groupKey : groups.keySet()) {

ListListInteger groupItem = groups.get(groupKey);

for (ListInteger row : groupItem) {

for (Integer col : row) {

System.out.print(col + " ");

}

System.out.println();

}

}

}

javastream排序后分组,还有序吗

有。

javastream排序后分组,还有序,根据字符串类型日期分组,并按照日期升序排序,分组、计数、排列。

排序又称分类。按关键字大小递增或递减的次序,对文件中的全部记录重新排列的过程。是计算机程序设计中的一种重要运算。分内部排序和外部排序两大类。

java设计一个按班级的分组排序,班级 姓名 学号 成绩 ,再输出每个班90分以上的人数,占比多少。

一、先编排考场

1.首先要做的就是先安排各个班级的每个学生所在的考场,尽量让同一考场不能有同班同学。或者是,同一考场出现部分或极少的同班同学。

2.比如,一个年级有20个班级,每个班级有50个学生,那么,学生总人数就是1000个人;如果一个考场安排30个学生,那么,每个考场就有30个座位,那么,总的考场数量是31个。

3.现在先安排考场。

4.如下图,增加一“考场”的列,然后,使用填充功能,从上往下填充1到31,1到31代表的就是考场号;

5.注意,从1填充到31,然后,接着又从1填充到31,直到把整个年级的学生都填充完为止。

6.通过填充,就得到如下图的数据了。

7.现在看下图,每个班级每个学生都安排好考城了,分别在不同的考场,即便是有同班的同学在同一考场,也是少数人,稍后通过下面的方法,就能解决相邻的问题。

二、同一考场的同班同学不能在相邻位置

1.通过如上的操作,整个年级的每个学生都安排好了考场了,现在,要做的就是同一考场内的同一班级的学生不能在相邻的位置。

A、先通过排序的办法,对考场号进行排序

这样就能将同一考场的学生排序到一块。

B、同一考场安排座位

同一考场内,多数同学是不同班级的,但是有一小部分同学是同班级的,因此,得保证同一班级的同学不能在相邻的位置。

2.针对同一考场的学生数据进行排序,其它考场不管。或者将每个考场的学生数据单独保存成为一个Excel文件。

排序的时候,按照学生姓名进行排序,这样基本就能解决相邻的问题了,排序好了以后,再通过填充的办法,给同一考场的学生填充上1到30的座位号。

如此,整个编排考场,同班不能相邻的问题就能圆满的解决了。

分组排序java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于分组排序取每组前五、分组排序java的信息别忘了在本站进行查找喔。