0

我有一个包含数千行数据的文本文件,如下所示:

38.48,88.25
48.20,98.11
100.24,181.39
83.01,97.33

我可以很好地分离每个“双”值,但我无法将每一行添加到我的用户定义的类中。在我的主要方法中,我通过以下方式创建了一个列表:

List<Pair> data = new ArrayList<Pair>();

其中 Pair 定义为:

class Pair {

  private final double first;
  private final double second;

  public Pair(double first, double second) {
    this.first = first;
    this.second = second;
  }

现在我正在尝试将项目添加到此列表中。我试过:“data.add(double,double)”但这不起作用。我尝试在 Pair 类中创建一个 set 方法,但它不会让我因为“first”和“second”被声明为“final”。我知道我可以更改它们,但我确实希望它们成为最终值。那么如何将项目添加到此列表中?

4

2 回答 2

4

正如您声明的List那样List<Pair>,您需要向其中添加Pair对象List。您需要创建一个Pair将双精度值传递给其构造函数的实例,然后add将该实例传递给List<Pair> data. 像这样:

Pair pair = new Pair(doubleValue,doubleValue);
data.add(pair);

请仔细阅读 的文档List,它为您提供了两种单独add添加元素的方法List

add(E e)add(int index,E e)

于 2013-05-12T05:49:33.500 回答
0

添加到 Noob 提到的内容。列表或 java 中的任何其他集合不适用于原语。集合存储对象。因此,您需要创建类对的对象,该对象将保存第一个和第二个属性的详细信息。您可以将由 Pair 对象表示的多行读取文件存储在列表中:

List<Pair> data = new ArrayList<Pair>();
Pair pair = new Pair(first,second);
data.add(pair);
于 2013-05-12T05:52:34.977 回答