用Java中的其他多个列表对列表进行排序

时间:2019-07-17 15:30:21

标签: java sorting

我有多个大小相同的列表,需要按所有其他列表对其中一个进行排序。可以传入的列表数量没有限制,列表的顺序很重要。另外,用户可能希望对列表进行升序或降序排序。例如,某人可能希望按照年龄从小到大的顺序对列表进行排序,如果年龄相同,则按照姓升序进行排序。

List people = List.of("John Doe", "Jane Doe", "Abe Smith")
List ages = List.of(20, 25, 20)
List firstNames = List.of("John", "Jane", "Abe")

sort(people, ages, "desc", firstNames, "asc")

Result: ["Jane Doe", "Abe Smith", "John Doe"]

编辑:用户可以将所需的任何列表与所需的其他任何列表进行排序,只要它们的大小均相同即可。不只是人。那只是他们可能想要排序的数据类型的一个例子。

2 个答案:

答案 0 :(得分:1)

  • 创建一个通用函数f(people,list1,desc,list2,asc ....)
  • 以hashMap对象并存储人员作为键和值list1,list2,并创建myComprator类并按值排序。

答案 1 :(得分:0)

在我看来,您采用的方法不会帮助您转换为People类,并像#Michael所提到的那样将所有财产都带进去