【问题标题】:Using Comparator/Comparable in Java [closed]在 Java 中使用 Comparator/Comparable [关闭]
【发布时间】:2020-11-22 20:22:30
【问题描述】:

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

【问题讨论】:

  • 你不比较元素。您比较类的实例。 cat 是什么类的实例?
  • 你看过什么?你试过什么?或许可以看看用 Java 对集合进行排序,以及如何实现比较器
  • 这看起来像你想要的:stackoverflow.com/questions/2857036/…。有一个选项是元素“cat”总是第一个,另一种解决方案是最初的第一个元素总是第一个(即对子列表进行排序)。

标签: java sorting comparator comparable


【解决方案1】:

最简单的方法是将它们放在一个列表中,然后对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]

之所以有效,是因为subList 提供了列表的视图,因此排序在该视图上进行。

如果您更喜欢使用数组,您可以使用Arrays.asListList 转换为subList 排序。这也使用数组来支持列表,因此对列表的更改会反映在数组中。这仅适用于对象数组(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));

输出同上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 2011-01-17
    • 2012-11-12
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多