我有这种情况,我有5个人:P1,P2,P3,P4,P5。
每个人都有3个标准要比较:A,B,C(由5.x
等浮点数组成,所以A可以是5.3
或1.2
等,B可以是{{ 1}}等,C 1.8
等,最小值为8.9
,最大值为0.0
。
每个条件都有子标准(例如6个子标准也由浮点数组成,如10.0
):A1,A2,A3,A4,A5,A6 / B1,B2,B3,...你明白了。
如何将这5个人放在HashMap(或任何其他集合)中,并附有各自的标准和子标准:
2.x
并执行以下操作:
从每个人(A)中取出第一个标准并从中取出最小值/最大值,即从P1-A,P2-A,P3-A,P4-A,P5-A保留可能是P1-A,P2-A,P3-A,它们各自的亚标准数,P1-A-A1,P1-A-A2,P1-A-A3 ...... / P2-A-A1,P2-A- A2,P2-A-A3等。
因为最小值/最大值出局,所以剩下的标准P1-A,P2-A,P3-A意味着只有P1,P2,P3仍然在游戏中,P4和P5都没有了。下一步操作是计算P1标准A亚标准A1,P2标准A亚标准A1和P3标准A亚标准A1之间的平均值。这应该计算每个子标准,如下所示:
HashMap<String, List<Float>> person = new HashMap<String, List<Float>>();
标准A总共6。
对于标准B和C,是与第1点和第2点相同的操作。
我需要为每个人P1 ... P5注入标准A,B,C和子标准A1 ... A6,B1 ... B6,C1 ... C6的数字,没有A的值与A1,A2 ... A6,B1 ......等的值之间的联系,只是最后的操作计数。
我认为最好的方法是将标准作为关键字和子标准作为值创建人格图。
答案 0 :(得分:0)
我无法通过密钥查看您需要访问特定人员的位置,因此您不需要HashMap
,只需List
。
但是标准是由键引用的,所以你应该这样做:
enum CriteriaKey {
A, B, C
}
enum SubcriteriaKey {
...
}
class Criteria implements Comparable<Criteria> {
private Float value;
private Map<SubriteriaKey, Subcriteria> ...
}
class Subcriteria implements Comparable<Subcriteria> {
private Float value;
...
}
class Person {
private Map<CriteriaKey, Criteria> ...
}
然后实现在这些类中执行操作的方法。