java - 在java中合并数组

标签 java arrays merge

<分区>

假设您有三个字符串数组 例如:

array1: as,hi,ji

array2: fo,gl

array3: gt,my,wx,zq

如您所见,各个数组已排序。 你将如何合并它们,合并后的数组也被排序? 我知道你可以先写一个方法来合并它们中的一对,然后将最后一个与这个新的合并。 大多数情况下,我只是感到困惑,如果你应该先合并然后排序,反之亦然。 归并排序有用吗?

最佳答案

我会用类似的东西

public static String[] join(String[]... sas) {
    String[] result = new String[0];
    for (String[] sa : sas) {
        result = Arrays.copyOf(result, result.length + sa.length);
        System.arraycopy(sa, 0, result, result.length - sa.length, sa.length);
    }
    return result;
}

然后

String[] s = join(s1, s2, s3);
Arrays.sort(s);

也许有任何外部库处理这个。

与效率相关,对数组进行排序具有~ N * log N(合并排序)的复杂性,这比复制(~ N)更糟糕,所以更好的方法是联合数组并排序一次而不是对每个特定的合并进行排序。 Java 类 Arrays 在内部使用合并排序。

关于java - 在java中合并数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22082612/

相关文章:

java - 将 JSON 字符串转换为 Java

java - Spring Boot工具套件安装

javascript - 将项目添加到数组中 - 单独

sql - 如何在 group by 之后按顺序连接一列?

iphone - 动态数组返回 numberOfRowsInSection 中的计数

r - 根据条件合并 R 中的行和值

java函数通过自定义异常返回值是一个好方法吗?

java - 为什么这种类型推断不适用于这个 Lambda 表达式场景?

python - Pandas 合并用空值填充新数据框

git - 撤消 git merge