不使用stream的方式用java代码实现分组后排序且排名要连续的功能
时间: 2024-02-09 15:11:36 浏览: 109
归并排序.java 使用java代码来实现
可以使用Java中的Collections工具类来实现分组排序和排名连续的功能。以下是一个简单的示例代码:
```java
import java.util.*;
public class GroupSortRank {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
int groupSize = 3;
// 分组
Map<Integer, List<Integer>> groups = new HashMap<>();
int group = 1;
for (int i = 0; i < list.size(); i += groupSize) {
List<Integer> sublist = list.subList(i, Math.min(i + groupSize, list.size()));
groups.put(group++, sublist);
}
// 排序
List<List<Integer>> sortedGroups = new ArrayList<>(groups.values());
sortedGroups.forEach(Collections::sort);
// 排名
Map<Integer, Integer> ranks = new HashMap<>();
int rank = 1;
for (List<Integer> sublist : sortedGroups) {
for (int i = 0; i < sublist.size(); i++) {
ranks.put(sublist.get(i), rank++);
}
}
// 输出结果
for (int i = 0; i < list.size(); i++) {
int num = list.get(i);
int groupNum = (i / groupSize) + 1;
System.out.println("Number: " + num + ", Group: " + groupNum + ", Rank: " + ranks.get(num));
}
}
}
```
在这个示例中,我们将包含15个整数的列表分为大小为3的三个组,然后对每个组进行排序并计算排名。最后,我们按照原始列表中的顺序输出每个数字的分组和排名。
阅读全文