我有这样的Kvote课:

public class Kvote {
    private static int counter = 0;
    private double[] vrednost = new double[3];
    private int id;

    public Kvote(double v1, double v2) {
        super();
        this.vrednost[1] = v1;
        this.vrednost[2] = v2;
        this.id = counter;
        counter++;

    }

    public static int getCounter(){
        return counter;
    }
}


我已经在Main中创建了该类的几个对象:

Kvote k1 = new Kvote(2, 4.25);
Kvote k2 = new Kvote(1.85, 5);
Kvote k3 = new Kvote(1.62, 6.5);
Kvote k4 = new Kvote(1.72, 6);


因此,类Kvote的每个实例都有一些id,对于k1为0,对于k2为1,对于k3为2 ...
是否可以通过其id var值访问对象。例如,如果我请求Id = 2的对象,则得到对象k3 ...

我很难解释为什么我需要这个,但我确实需要。基本上,我的alghorytm需要处理Kvote类的无限数量的对象:k1,k2,k3,k4,k5,k6,k7...。

最佳答案

尝试这个:

HashMap<Integer, Kvote> map = new HashMap<Integer, Kvote>();
put(k1.getId(), k1);
put(k2.getId(), k2);
put(k3.getId(), k3);
put(k4.getId(), k4);


然后使用地图通过ID获取值,例如:

map.get(2) => k3


另外,您需要将getId()函数添加到Kvote类。

08-28 19:48