我正在开发一个包含许多自定义数据类的应用程序。我从 2 个不同的地方为我的应用程序输入输入,并希望在两者之间进行交叉引用以帮助确保数据准确。
我有一个Map.Entry<String,HashMap<String, Integer>>
名为 的对象chromosome
,其中每个值都称为marker
.
我还有一个名为的自定义对象IndividualList individuals
,它扩展HashMap<Integer,Individual>
了每个对象Individual
都有一个Genotype getGenotype()
返回非静态变量的方法genotype
。Genotype
延伸HashMap<String,String[]>
我想查看key
我的所有marker
对象的每一个,并检查它们中的每一个是否都作为 key 存在于任何 Individual
'sgenotype
中。每个Individual
都有相同的键,genotype
所以我只需要测试一个Individual
。
我面临的问题是Individual
要测试哪个,因为它是一个HashMap
我不能简单地随意选择第一个元素,所以我现在正在做的是将这些值individuals
作为 aCollection
然后将它们转换为ArrayList<Individual>
然后取第一个元素这些元素(这只是一个无序的任意元素)HashMap
得到一个Individual
然后取 thisIndividual
并genotype
与. 像这样:marker.getKey()
genotype
for(Map.Entry<String, MarkerPosition> marker : chromosome.getValue().entrySet())
if(!(new ArrayList<Individual>(individuals.values()).get(0)
.getGenotype().containsKey(marker.getKey())))
errors.add("Marker " + marker.getKey() + " is not present in genotype");
但正如你所看到的,这是可怕的、丑陋的,而且太复杂了,所以我想知道是否有一种更简单的方法来实现我所缺少的我想要的东西。
谢谢!