首页 > 解决方案 > 在 Java 中使用 Comparator/Comparable

问题描述

java新手。我有元素猫,狗,苹果,斑马,鹦鹉。我想对这些元素进行升序排序,但“猫”应该保持在第一位。我如何使用比较器/可比较在 java 中实现?

标签: javasortingcomparatorcomparable

解决方案


最简单的方法是将它们放在一个列表中并排序一个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));

输出与上面相同。


推荐阅读