首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于另一个字符串数组对2D字符串数组进行排序- Java

基于另一个字符串数组对2D字符串数组进行排序是一个常见的排序问题。在Java中,可以使用自定义的比较器来实现这个功能。

首先,我们需要定义一个比较器类,该类实现了Comparator接口,并重写了compare方法。在compare方法中,我们可以根据另一个字符串数组的顺序来比较两个字符串数组的大小。

下面是一个示例代码:

代码语言:txt
复制
import java.util.Arrays;
import java.util.Comparator;

public class StringArraySort {
    public static void main(String[] args) {
        String[][] array = {{"apple", "banana", "cherry"},
                            {"dog", "cat", "elephant"},
                            {"car", "bus", "bike"}};
        String[] order = {"banana", "cherry", "apple"};

        Arrays.sort(array, new StringArrayComparator(order));

        for (String[] row : array) {
            System.out.println(Arrays.toString(row));
        }
    }
}

class StringArrayComparator implements Comparator<String[]> {
    private String[] order;

    public StringArrayComparator(String[] order) {
        this.order = order;
    }

    @Override
    public int compare(String[] o1, String[] o2) {
        int index1 = getIndex(o1);
        int index2 = getIndex(o2);
        return Integer.compare(index1, index2);
    }

    private int getIndex(String[] array) {
        for (int i = 0; i < order.length; i++) {
            if (Arrays.equals(array, order[i])) {
                return i;
            }
        }
        return -1;
    }
}

在上面的代码中,我们定义了一个二维字符串数组array和一个字符串数组orderorder数组表示排序的顺序。然后,我们使用Arrays.sort方法对array数组进行排序,传入了自定义的比较器StringArrayComparator

StringArrayComparator类中的compare方法根据order数组的顺序比较两个字符串数组的大小。getIndex方法用于获取字符串数组在order数组中的索引,如果找不到,则返回-1。

最后,我们遍历排序后的array数组,并打印每一行的内容。

这个问题的应用场景可以是对包含多个属性的对象进行排序,例如学生信息的二维数组,可以根据学生的姓名、年龄、成绩等属性进行排序。

腾讯云提供了多种云计算相关的产品,例如云服务器、云数据库、云存储等。具体的产品介绍和链接地址可以参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券