将双变量值存储到列表<string>

store double variable values in to list<string>

我正在处理具有非常大数据集的 csv 文件。在阅读文件时我提取了第三名(平衡)';'使用 while 循环 iteration.i 将每行的数值分开 iteration.i 想将这些值(BALANCE)存储到 listOF string.how 中,我可以这样做吗?

import java.io.File;
import java.io.FileNotFoundException;
import java.io.*;
public static void main(String[] args)throws IOException {
        String filename = "bank-full.csv";
        File file = new File(filename);
        try {
            Scanner inputStream = new Scanner(file);
            inputStream.next();
            int count=0;
      while (inputStream.hasNext()) 
          {
            String data = inputStream.next();         
            String[] values = data.split(";");
            double BALANCE = Double.parseDouble(values[2]);
            System.out.println(BALANCE);
            inputStream.close();
          } 
      catch (FileNotFoundException ex) {
            Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
   }

store double variable values in to list

像这样:

List<String> l = new ArrayList<String>();
l.add(Double.toString(42.0));

或者,如果您尝试构建双打列表,则使用包装器类型,如下所示:

List<Double> l = new ArrayList<Double>();
l.add(42.0);  // The double will be autoboxed as a Double.
String filename = "bank-full.csv";
            List<Double> list = new ArrayList<Double>();
            File file = new File(filename);
            try {
                Scanner inputStream = new Scanner(file);
                inputStream.next();
                int count = 0;
                while (inputStream.hasNext()) {
                    String data = inputStream.next();
                    String[] values = data.split(";");
                    double BALANCE = Double.parseDouble(values[2]);
                    list.add(BALANCE);
                    System.out.println(BALANCE);
                    inputStream.close();
                }
            }
                catch (FileNotFoundException ex) {
                    Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
                }
            }

您可以将列表初始化为 'Double' 类型,也可以在将双打添加到列表之前将其转换为字符串。这或多或少取决于您打算如何使用该列表。您是否会将列表中的信息存储为双打?或者您将允许用户以字符串的形式编辑值吗?举几个例子。

如果您想将余额值保存在字符串列表中,您可以直接将它们添加到其中,如下所示:

List<String> balancesList = new ArrayList<String>();

在你的 while 循环中:

 String data = inputStream.next();         
 String[] values = data.split(";");
 balancesList.add(values[2]); //Just add it to the list here

因为values[2]中的余额值字符串

尝试使用 ArrayList or LinkedList:它们都扩展了 AbstractList,因此它们具有方法 add(T),其中 T 可以是任何对象类型(在您的示例中为 Double)。
在您的情况下,您应该这样做:

List<Double> container = new ArrayList<Double>();
while (inputStream.hasNext()) {
    String data = inputStream.next();
    String[] values = data.split(";");
    double BALANCE = Double.parseDouble(values[2]);
    System.out.println(BALANCE);
    container.add(BALANCE);
}
inputStream.close();
//now "container" contains all balance values

此外,您不应该在读取时关闭输入流,而是在 while 循环之后关闭它。

如果你想以相反的顺序存储它们,使用这个add method它允许你在列表的每个位置添加一个元素,所以你可以这样做:

container.add(container.size(), BALANCE);