这是我到目前为止所拥有的
int[] startInts = Arrays.copyOfRange(myInts, count+1, myInts.length); // first half of array
int[] endInts = Arrays.copyOfRange(myInts, count+1, myInts.length); // other half of array
int[] newInts = new int[startInts.length + endInts.length];
System.arraycopy(startInts, 0, newInts, 0, startInts.length);
System.arraycopy(endInts, 0, newInts, startInts.length, endInts.length);
myInts = newInts;
但这一切都给了我一个数字。
它并没有真正将两个数组合并为一个数组。任何帮助如何做到这一点。
int[] startInts = Arrays.copyOfRange(myInts, myInts[0], index); // first half of array
int[] endInts = Arrays.copyOfRange(myInts, count+1, myInts.length); // other half of array
System.out.println(Arrays.toString(startInts));
System.out.println(Arrays.toString(endInts));
int[] newInts = new int[startInts.length + endInts.length];
System.arraycopy(startInts, 0, newInts, 0, startInts.length);
System.arraycopy(endInts, 0, newInts, startInts.length, endInts.length);
答案 0 :(得分:1)
班级系统
方法
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
从指定的源数组复制数组,从 指定的位置,到目的地的指定位置 阵列。
查看所有功能集javadoc
修改强>
int[] startInts = Arrays.copyOfRange(myInts, count+1, myInts.length); // first half of array
int[] endInts = Arrays.copyOfRange(myInts, count+1, myInts.length); // other half of array
你在这里遇到的可能问题是startInts
和endInts
是相同的,所以它不是上半场和下半场,只是上半场和上半场。
答案 1 :(得分:0)
您应该使用:
String[] both = ArrayUtils.addAll(first, second);
当ArrayUtils是来自Apache Commons Lang库的类
时答案 2 :(得分:0)
为什么不使用ArrayList的
ArrayList<String> a = new ArrayList<String>();
ArrayList<String> b = new ArrayList<String>();
a.add("a1");
a.add("a2");
b.add("b1");
b.add("b2");
ArrayList<String> c = new ArrayList<String>();
c.addAll(a);
c.addAll(b);
System.out.println(c.toString());
当然,如果你想从真正的arrays
开始,那么你可以使用ArrayList
将其转换为Arrays.asList(array)
答案 3 :(得分:-1)
String[] both = (String[]) ArrayUtils.addAll(first, second);
或
static String[] concat(String[] a, String[] b) {
String[] c= new String[a.length+b.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
return c;
}