java - 在 Java 中使用 Comparator/Comparable
问题描述
java新手。我有元素猫,狗,苹果,斑马,鹦鹉。我想对这些元素进行升序排序,但“猫”应该保持在第一位。我如何使用比较器/可比较在 java 中实现?
解决方案
最简单的方法是将它们放在一个列表中并排序一个subList
.
List<String> list = Arrays.asList(
"cat","dog","apple",
"zebra","parrot");
Collections.sort(list.subList(1,list.size()));
System.out.println(list);
印刷
[cat, apple, dog, parrot, zebra]
它之所以有效,是因为 asubList
给出了列表的视图,因此排序在该视图上进行。
如果您更喜欢使用数组,则可以使用Arrays.asList
转换为 aList
进行subList
排序。这也使用数组来支持列表,因此对列表的更改会反映在数组中。这仅适用于 Object 数组(e.g. String[], Integer[])
,但不适用于原始数组(e.g. int[], double[])
。
String[] arr = {"cat", "dog", "apple","zebra","parrot"};
Collections.sort(Arrays.asList(arr).subList(1,arr.length));
System.out.println(Arrays.toString(arr));
输出与上面相同。
推荐阅读
- vb.net - Visual Basic - 制作折线图
- arrays - 根据数组删除匹配的 SSN
- bash - 有哪些常见的 HDFS 命令可以映射到 bash 文件中?
- javascript - 仅在 Firefox 中通过 mp4 播放 ogg
- r - 使用 R 计算重复 ID 的比例
- javascript - Selenium sendKeys 不适用于磅符号
- jgroups - 需要解决两个主机组的 JGroups 非分组行为
- powershell - 通过变量获取具有多个路径的子项
- ios - 如何通过 numberOfRowInSection 函数联系发件人?
- load-balancing - 基于顶点和端口的路由