java - 如何对ArrayList中的数组进行排序?

标签 java arrays sorting arraylist

我有ArrayList,它包含很多数组,每个数组都包含名字,姓氏。现在我想根据姓氏对列表进行排序。

示例:

ArrayList<String[]> list=new ArrayList<String[]>();
 String[] name1={"koti" ,"reddy"};
 String[] name2={"hanu" ,"sanjay"};
 String[] name3={"ajay" ,"zedeja"};
 String[] name4={"basha" ,"kadhar"};

 list.add(name1);
 list.add(name2);
 list.add(name3);
 list.add(name4);

我想要的排序顺序如下:

basha kadhar 
koti reddy 
hanu sanjay 
ajay zedeja 

您能尽快帮忙吗?提前致谢

最佳答案

编写自定义 Comparator 并将其与数据一起提供给适当的 sort 重载。

但是,我建议使用单独的 Person/Name 类型,而不是字符串数组,因为它将使数据更容易跟踪并且它可以实现 Comparable (这将消除/取代比较器的需要)。

现在,在编写适用的 compare/compareTo 时,代码应类似于:

int cmpLastName = a_lastName.compareTo(b_lastName);
if (cmpLastName == 0) {
    // same lastname, order now based on first name
    return a_firstName.compareTo(b_firstName);
} else {
    // different lastname, so have enough ordering
    return cmpLastName;
}

关于java - 如何对ArrayList中的数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20279103/

相关文章:

JavaScript - 石头剪刀布 - 用户输入不被确认

javascript for() 循环、split() 和数组问题

java - 使用 Docker Compose 连接到另一个容器中运行的 mysql

java - 整数计数器 - 最大值时怎么办?

java - InputMismatchException...即使使用 try/catch

java - CDI 拦截器与 CDI 事件

java - 从对象中提取数组

c# - 如何按计数对列表列表进行排序?

python - 在python中对一个列表进行排序以匹配另一个列表

string - 按固定顺序对选定的部分进行排序 - 空间不受限制