假设我有一个数组:
int[] values = {1, 2, 3, 4, 5, 6, 7 , 8, 9, 0};
有两个索引(假设2
和5
),我希望能够从变量{{1}将索引从2
返回到5
如上所述。最终输出应为:
values
此外,该程序如何与多维数组一起使用?
我会用Google搜索,但我不确定谷歌是什么,所以我来到这里。
答案 0 :(得分:8)
使用java.util Arrays
课程。使用copyOfRange(int[] original, int from, int to)
方法:
newValues[] = Arrays.copyOfRange(values, 2, 6);
答案 1 :(得分:2)
尝试以下
public static void main(String[] args)
{
int[] values = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int start = 2, end = 5; // Index
int[] newValues = new int[end - start + 1]; // Create new array
for (int i = start; i <= end; i++) {
newValues[i - start] = values[i]; // Assign values
}
// Print newValues
for (int v : newValues) {
System.out.print(v + " ");
}
}
<强>输出:强>
3 4 5 6
答案 2 :(得分:2)
请尝试以下2D阵列:
public int[][] getRange(int[][] src, int x, int y, int x2, int y2) {
int[][] ret = new int[x2-x+1][y2-y+1];
for(int i = 0; i <= x2-x; i++)
for(int j = 0; j <= y2-y; j++)
ret[i][j] = src[x+i][y+j];
return ret;
}
对于1D数组,Arrays.copyOfRange()
应该没问题,对于更多维度,您只需添加更多参数和for
循环
答案 3 :(得分:1)
您可以使用以下内容:
int[] values = {1, 2, 3, 4, 5, 6, 7 , 8, 9, 0};
int newValues[] = new int[4];
System.arraycopy(values,1,newValues,0,4)
这是完整的代码:
public class CopyRange {
public static void main (String...args){
int[] values = {1, 2, 3, 4, 5, 6, 7 , 8, 9, 0};
int newValues[] = new int[4];
System.arraycopy(values,1,newValues,0,4);
for (int i =0;i <newValues.length;i++)
System.out.print(newValues[i] + " ");
}
}
System类有一个arraycopy方法,可以用来有效地将数据从一个数组复制到另一个数组中:
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)