根据列表中的所有字段排序

#include <stdio.h>
#include <string.h>

int main(void) {

   const int NUM_VALS = 20;
   int i;
   int actualInput;
   char userString[actualInput][NUM_VALS];
   int matchCount = 0;

   scanf("%d",&actualInput);

   for (i = 0; i < actualInput; ++i) {
      scanf("%s",userString[i]);
      printf("%s",userString[i]);
   }



   return 0;
}

我有一个具有5个字段的bean。我想按1比2比3比4和5来对所有五个字段进行排序

它由

组成

字符串 串, 日期, 字符串,

我该如何根据ID,姓名,加入日期,城市,年龄对列表中的import java.util.Date; public class Emp { public Emp() { } private int Id; private String name; private Date date_of_join; private String city; private int age; public int getId() { return Id; } public void setId(int id) { Id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDate_of_join() { return date_of_join; } public void setDate_of_join(Date date_of_join) { this.date_of_join = date_of_join; } public String getcity() { return city; } public void setCity(String city) { this.city = city; } public int getage() { return age; } public void setage(int age) { this.age = age; } } 进行排序

zhutian87897998 回答:根据列表中的所有字段排序

您创建自定义Comparator

myList.sort(Comparator.comparingInt(Emp::getId)
                      .thenComparing(Emp::getName)
                      .thenComparing(Emp::getDate_of_join)
                      .thenComparing(Emp::getCity)
                      .thenComparingInt(Emp::getAge));

编辑:
为了满足评论中的要求,您可以在按城市字符串的长度排序之前,对项目进行排序:

myList.sort(Comparator.comparingInt(Emp::getId)
                      .thenComparing(Emp::getName)
                      .thenComparing(Emp::getDate_of_join)
                      .thenComparingInt(e -> e.getCity().length())
                      .thenComparing(Emp::getCity)
                      .thenComparingInt(Emp::getAge));
本文链接:https://www.f2er.com/2616853.html

大家都在问