항목을 사용하고 싶지는 않습니다. 인터페이스가 아닌 클래스입니다. 이 인터페이스는 Map을 구현하는 클래스에서 entrySet()을 호출 할 때 Set의 구현에 사용됩니다. 기본적으로 구현 된 맵을 마치 세트처럼 조작 할 수 있습니다.
무엇을 할 것인가? 이 작업을 시도하면 "Map.Entry 유형을 인스턴스화 할 수 없습니다"라는 줄에 따라 컴파일러 오류가 표시됩니다. 그것은 Map.Entry가 클래스가 아니라 인터페이스이기 때문입니다. 인터페이스에는 실제 코드가 포함되어 있지 않으므로 여기에서 실행할 실제 생성자가 없습니다.
Entry<Double, Double> pair = new Entry<Double, Double>();
당신은 당신이 인터페이스의 의미 그것은 "인터페이스의 Map.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;
}
}
이제 페어 클래스를 작성하면 코드가 다음과 같이 보입니다.
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);
}
}
걱정할 필요가없는 경우 언제든지 시도해보세요. http://www.javatuples.org/ – Nim
중복 된 http://stackoverflow.com/questions/521171/a-java-collection-of-value-pairs 튜토리얼 –