使用java合并两个String数组对象

问题描述

public class MergeNames {
    public static void main(String[] args) {
        String[] names1 = new String[] { "Ava","emma","Olivia" };
        String[] names2 = new String[] { "Olivia","Sophia","emma" };
        int na1 = names1.length;
        int na2 = names2.length;
        String [] result = new String[na1 + na2];
        System.arraycopy(names1,result,na1);
        System.arraycopy(names2,na1,na2);
        System.out.println(Arrays.toString(result));
    }
}

我创建了两个数组对象字符串并分配相同的字符串值。之后需要将两个String数组对象合并成另一个String数组对象。

注意:没有重复

我想要像这样的输出 [“艾娃”、“艾玛”、“奥利维亚”、“索菲亚”、“艾玛”]

解决方法

您可以使用 Java Stream APIStream.of()。请参阅示例以更好地理解。

参考代码

public class Main {
    public static <T> Object[] mergeArray(T[] arr1,T[] arr2)   
    {   
        return Stream.of(arr1,arr2).flatMap(Stream::of).distinct().toArray();   
    }   
    public static void main(String[] args) {
        String[] names1 = new String[] { "Ava","Emma","Olivia" };
        String[] names2 = new String[] { "Olivia","Sophia","Emma" };
        
        Object [] result = mergeArray(names1,names2);
        
        System.out.println(Arrays.toString(result));
    }
}

输出

[Ava,Emma,Olivia,Sophia]
,

你犯了一个小错误

String [] result = new String[na1 + na2];

不是int