Java-将数组值传递给第二个数组
我试图找出如何获取一个数组的值并将其传递给另一个数组。底部的图像是我可以用Java-将数组值传递给第二个数组,java,arrays,Java,Arrays,我试图找出如何获取一个数组的值并将其传递给另一个数组。底部的图像是我可以用crimeArrayNumbers归结为的数组。我试图将每个索引(如索引1)分别存储在另一个类中的数组中。在本例中,另一个类中的数组ifnewuscrimarrays.population。理想情况下,我会尝试为每一列创建一个数组,这样我就可以操纵它们并进行数学和搜索操作 我做了一些研究,认为Arrays.copyOfRange或System.arraycopy()可能有效。然而,我现在不知道如何正确地实施。有没有更简单或
crimeArrayNumbers
归结为的数组。我试图将每个索引(如索引1)分别存储在另一个类中的数组中。在本例中,另一个类中的数组ifnewuscrimarrays.population
。理想情况下,我会尝试为每一列创建一个数组,这样我就可以操纵它们并进行数学和搜索操作
我做了一些研究,认为Arrays.copyOfRange
或System.arraycopy()
可能有效。然而,我现在不知道如何正确地实施。有没有更简单或更有效的方法
try {
br = new BufferedReader(new FileReader(newUSCrimes.fileName));
while ((line = br.readLine()) != null && !line.isEmpty()) {
String[] crimesArray = line.split(csvComma);
long[] crimesArrayNumbers = new long[crimesArray.length];
//resting the index inside the main loop
index = 0;
for (int i = 0; i < crimesArrayNumbers.length; i++) {
try {
crimesArrayNumbers[index] = Long.parseLong(crimesArray[i]);
index++;
newUSCrimeArrays.population = Arrays.copyOfRange(crimesArrayNumbers, 0, 0);
} catch (IndexOutOfBoundsException | NumberFormatException ioob) {
}
} //end for loop
crimesArrayNumbers = Arrays.copyOf(crimesArrayNumbers, index);
System.out.println(Arrays.toString(crimesArrayNumbers));
}//end try
System.out.println();
System.out.println(Arrays.toString(newUSCrimeArrays.population));
} catch (FileNotFoundException e) {
} catch (IOException e) {
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
}
}
}
试试看{
br=新的BufferedReader(新的文件读取器(newUSCrimes.fileName));
而((line=br.readLine())!=null&&!line.isEmpty()){
String[]crimesArray=line.split(csvComma);
long[]crimesArray.length=新的long[crimesArray.length];
//将索引放在主循环内
指数=0;
for(int i=0;i
如果我很了解您要做的事情,您需要将一些数据从文件导入数组,然后将此数组的内容复制到另一个数组中。如果是这种情况,您可以使用
Arrays.copyOf(source,length)
。这将复制源
数组,创建具有给定长度的新数组。如果新长度小于旧长度,该方法将截断,否则,它将用空值填充新部分
因此,不要每次迭代都这样做:
newuscrimarrays.population=Arrays.copyOfRange(crimesArrayNumbers,0,0)代码>
您只需在for
循环的末尾调用如下简单内容:
newuscrimarrays.population=Arrays.copyOf(crimesArrayNumbers,crimesArrayNumbers.length)代码>
除此之外,还可以使用clone()
,这是从对象继承的方法。在原语数组(int、bool…)中,这将对内容进行深度复制,这意味着将创建每个值的副本。
但是,您必须非常谨慎地使用此方法,因为如果数组不包含基元,它的行为会有所不同。如果我已经很好地理解了您试图执行的操作,您需要将一些数据从文件导入数组,然后将此数组的内容复制到另一个数组中。如果是这种情况,您可以使用Arrays.copyOf(source,length)
。这将复制源
数组,创建具有给定长度的新数组。如果新长度小于旧长度,该方法将截断,否则,它将用空值填充新部分
因此,不要每次迭代都这样做:
newuscrimarrays.population=Arrays.copyOfRange(crimesArrayNumbers,0,0)代码>
您只需在for
循环的末尾调用如下简单内容:
newuscrimarrays.population=Arrays.copyOf(crimesArrayNumbers,crimesArrayNumbers.length)代码>
除此之外,还可以使用clone()
,这是从对象继承的方法。在原语数组(int、bool…)中,这将对内容进行深度复制,这意味着将创建每个值的副本。
但是,您必须非常谨慎地使用此方法,因为如果数组不包含原语,它的行为会有所不同。我建议您阅读一下为什么不应使用clone()
方法:1。2.3.谢谢,我给了他们一个快速阅读。正如我指定的,我建议使用clone()
方法来处理原语数组,我知道它在其他情况下会做一些不同的事情。我将对问题进行编辑以澄清这一点。我建议您阅读一下为什么不应使用clone()
方法:1。2.3.谢谢,我给了他们一个快速阅读。正如我指定的,我建议使用clone()
方法来处理原语数组,我知道它在其他情况下会做一些不同的事情。我将编辑问题以澄清这一点。