java如何把两个二维数组合并成一个,高效的方法,希望大家给点意见

现在要处理字符串二维两数组的数据,把它们合并成一个,大家没有高效果的方法,希望给点意见,谢谢
[b]问题补充:[/b]
呵呵 谢谢 楼上的几位大哥。。。
比较大的字符串的[color=red]二维数组[/color],大家都是一维的,不过还谢谢大家,我现在的处理方法是bohemia 的方式。
是比较慢。。。。。

16个回答

如果不需要去重的话

[code="java"]
String[] a = new String[3];
a[0] = "0";
a[1] = "1";
a[2] = "2";

        String[] b = new String[3];
        b[0] = "0";
        b[1] = "1";
        b[2] = "2";

        String[] c = new String[a.length + b.length];

        for (int j = 0; j < a.length; ++j) {
            c[j] = a[j];
        }

        for (int j = 0; j < b.length; ++j) {
            c[a.length + j] = b[j];
        }

[/code]

比上面的效率要高很多。

[code="java"] String[] a = new String[3];
a[0] = "0";
a[1] = "1";
a[2] = "2";

    String[] b = new String[3];
    b[0] = "0";
    b[1] = "1";
    b[2] = "2";

    List aL = Arrays.asList(a);
    List bL = Arrays.asList(b);

    System.out.println(aL); 
    System.out.println(bL); 


    List resultList = new ArrayList();
    resultList.addAll(aL);
    resultList.addAll(bL);

    Object[] result = resultList.toArray();[/code]

需要去重不?

[code="java"] String[] srcStrings1 = new String[4];
srcStrings1[0] = "0";
srcStrings1[1] = "1";
srcStrings1[2] = "2";
srcStrings1[3] = "3";
String[] srcStrings2 = new String[5];
srcStrings2[0] = "4";
srcStrings2[1] = "5";
srcStrings2[2] = "6";
srcStrings2[3] = "7";
srcStrings2[4] = "8";
String[] destStrings = new String[srcStrings1.length + srcStrings2.length];
System.arraycopy(srcStrings1, 0, destStrings, 0, srcStrings1.length);
System.arraycopy(srcStrings2, 0, destStrings, srcStrings1.length, srcStrings2.length);
for (String str:destStrings){
System.out.println(str);
}
[/code]

感觉做多了程序,要注重效率,就减少间接,直接操作; 类似taopian的;
如果要注重可读性,就增加间接,例如OO;

呵呵. 都是在权衡适合的方法..

还是我这个方案最快,哈哈。

是这个样子的,你交给Java的类库去干,估计他加了很多额外的操作。

如果python的话:

a = ['1','2','3'];
b = ['1','2','3'];
c = a+b; //得到结果
c = set(a)|set(b) //去重.

呵呵.

[quote]是这个样子的,你交给Java的类库去干,估计他加了很多额外的操作。[/quote]
请查一查Java API的System.arraycopy,可是用native方法的哟!Java操作和native那个快?

这个你就错了吧,Java可恶的就是,无论啥都去用native,你仔细想想,调用native肯定效率没有java自己搞定的快的。

你可以测试一下我的方法,和你的方法,我的比你快三倍左右。

我循环了100000次,你可以测试一下。

共16条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问