class Obj{ HashMap<String,Double> v = new HashMap<>(); public double distance(Obj o){ double s = 0; for(String k:v.keySet()){ s += (o.v.containsKey(k))?(Math.pow(o.v.get(k)-v.get(k),2)):(0); } if(s == 0)return 0; return Math.sqrt(s); } } Obj p1 = new Obj(); Obj p2 = new Obj(); p1.v.put("X",1.0); p1.v.put("Y",2.0); p1.v.put("Z",3.0); p2.v.put("X",3.0); p2.v.put("Y",4.0); p2.v.put("Z",5.0); System.out.println(p1.distance(p2));
ううううつくしい!
メンバ関数に public void set(String k,double d){ v.put(k,d); } を入れた方が美しかったな 反省