在java中创建对列表

V1r*_*a1y 25 java list

对于非有序的对列表,哪个类最有效?我将采用一堆(浮动,短)对,并且需要能够执行简单的数学运算(比如将这些对相乘以返回单个浮点数等).List只接受一个参数,而HashMap不允许重复(据我所知).有什么想法吗?

Mar*_*iot 41

您可以使用使用的Entry<U,V>类,HashMap但您将被困在其语义getKeygetValue:

List<Entry<Float,Short>> pairList = //...
Run Code Online (Sandbox Code Playgroud)

我的偏好是创建自己的简单Pair类:

public class Pair<L,R> {
    private L l;
    private R r;
    public Pair(L l, R r){
        this.l = l;
        this.r = r;
    }
    public L getL(){ return l; }
    public R getR(){ return r; }
    public void setL(L l){ this.l = l; }
    public void setR(R r){ this.r = r; }
}
Run Code Online (Sandbox Code Playgroud)

然后当然List使用这个新类,例如:

List<Pair<Float,Short>> pairList = new ArrayList<Pair<Float,Short>>();
Run Code Online (Sandbox Code Playgroud)

您也可以随时进行ListListS,但它变得难以执行大小(你只有对),你会被要求,与阵列,具有一致的打字.

  • 您可能还想使“Pair”不可变。 (2认同)

hvg*_*des 11

使用自定义类实例列表.自定义类是某种配对或坐标或其他什么.然后就是

List<Coordinate> = new YourFavoriteListImplHere<Coordinate>()
Run Code Online (Sandbox Code Playgroud)

这种方法的优点是它满足了这个要求"执行简单的数学运算(比如将这些对相乘以返回单个浮点数等)"干净,因为你的自定义类可以有你需要做的任何数学方法......