从旧数组列创建新数组

时间:2016-09-25 10:56:04

标签: java arrays

我是OOP的新手,但我正在努力创建我的第一个更大的计划。 我读了一个txt文件并将值(双精度)存储到一个数组中,我称之为originalArray。该文本有两列和20行。因此,当我想在txt文件的第一列中打印值时,我只需编写:

 System.out.println(originalArray[0]);

 OUTPUT: 1991.00
         300.50
         498.50 .... et cetera... 

我的问题是我想使用for-loop(或其他)创建两个新数组,每个数组包含一个来自"原始数组"的列。

我认为这就像使用for循环一样简单,就像这样;

  double [] newArray = new double [20]; 

  for(int i = 0; i < originalArray.length; i++){

  newArray[i] = originalArray[0] //if I want to fill it with the first       

  //columns data... the second would be newArray2[i] = originalArray[1]
   } 

但是这会使用原始阵列中的一个元素填充新数组...所以 - 我需要帮助来确定如何编写循环以使用所选列中的所有元素填充新数组。

非常感谢您的帮助!

关心/沮丧的新手

编辑:这是我读取txt文件的方式:

String file = "C:\\Users\\komena\\Desktop\\30th-sales.csv";

 BufferedReader br = null;
 String line = "";
 String splitBy = ";";

originalArray = new double [20]; 
br = new BufferedReader(new FileReader(file));
br.readLine();//skip the first line to get rid of header…  
while ((line = br.readLine()) != null) {

String[] readlineArray = line.split(splitBy);

for (int i = 0; i < readlineArray.length; i++) {
originalArray[i] = Double.parseDouble(readlineArray[i]);

}

全文(csv)文件:

300.50;330.00
489.50;296.50
34.50;399.50
900.00;1890.00
2052.00;568.00
354.00;0.00
399.00;0.00
1299.50;0.00
426.00;259.00
29.50;2300.50
99.50;349.50
2500.50;0.00
358.50;113.00
789.00;239.50
998.00;348.00
16.50;679.00
800.00;723.00
1899.50;950.50
550.50;568.00

1 个答案:

答案 0 :(得分:0)

创建新的2D数组,第一维的大小与{ "query": { "bool": { "must": [ { "ids": { "type": "type_of_index" "values": ["AVbqtjXfoKQ0pubF_-NA"] } } ] } } } 的长度相同,第二维的大小为2(2列)。然后简单地循环它并将旧值添加到一列,如果需要,还将新值添加到新列,否则它们将默认设置为originalArray

0.0

输出:

double originalArray[] = {1991.00, 300.50, 498.50};
double newArray[][] = new double[originalArray.length][2];
for (int i=0; i<originalArray.length; i++) {
    newArray[i][0] = i                              // Fill the 1st column with sth like ID
    newArray[i][1] = originalArray[i];              // Copy the 1D array to the 2nd column
}
System.out.println(Arrays.deepToString(newArray));  // Print all the array values

此外,你读错了文件。请注意,每行中有2个值以[[1.0, 1991.00], [2.0, 300.50], [3.0, 498.50]] 分隔,而行以;分隔。因此,逐行读取并向数组中添加2个值。

\n变量代表i的实际索引。

originalArray[]