你不想使用 Entry,它是一个接口,而不是一个类。当您在实现 Map 的类上调用 entrySet() 时,Set 的实现将使用该接口。它基本上可以让你操纵实现的Map,就好像它是一个集合一样。
你会做的(但不能)是这个。如果尝试执行此操作,您将看到编译器错误,如“无法实例化 Map.Entry 类型”。这是因为Map.Entry是一个接口,而不是一个类。接口不包含任何实际代码,因此此处没有真正的构造函数。
Entry<Double, Double> pair = new Entry<Double, Double>();
如果你看下面的文档,你可以清楚地看到在顶部,它是一个“界面地图。Entry”,这意味着它是一个界面。http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Map.Entry.html
与其尝试实例化接口(这是不可能的),不如创建自己的类,称为 Pair。像这样的东西。如果您使用以下代码,请记住更改程序包。
package org.mike.test;
public class Pair {
private double x = 0.0;
private double y = 0.0;
public Pair(double x, double y)
{
this.x = x;
this.y = y;
}
public Pair()
{
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
}
编写 Pair 类后,您的代码现在将如下所示。
package org.mike.test;
import java.util.ArrayList;
import org.mike.test.Pair; //You don't need this if the Pair class is in the same package as the class using it
public class tester {
/**
* @param args
*/
public static void main(String[] args) {
ArrayList<Pair> values = new ArrayList<Pair>();
Pair pair = new Pair();
// set pair values:
pair.setY(3.6);
pair.setX(3.6);
values.add(pair);
}
}