多数のカスタム データ クラスを使用するアプリケーションに取り組んでいます。アプリケーションの入力を 2 つの異なる場所から取得しており、データが正確であることを確認するために 2 つの場所を相互参照したいと考えています。
というMap.Entry<String,HashMap<String, Integer>>
オブジェクトがchromosome
あり、各値は と呼ばれますmarker
。
また、それぞれが非静的変数を返すメソッドを持つ場所IndividualList individuals
を拡張するというカスタム オブジェクトもあります。伸びるHashMap<Integer,Individual>
Individual
Genotype getGenotype()
genotype
Genotype
HashMap<String,String[]>
key
すべてのオブジェクトのそれぞれを見て、それらのそれぞれがいずれかのmarker
キーとして存在するかどうかを確認したいと思います。すべてに同じキーが含まれているため、テストする必要があるのは 1 つだけです。 Individual
genotype
Individual
genotype
Individual
私が直面している問題はIndividual
、どちらをテストするかです。最初の要素を単に恣意的に選択することはできHashMap
ないため、現在行っていることは、の値individuals
をこれらの要素 (順序付けされていないため、任意のものです) を取得して、thisを取得し、のキーと比較します。そのようです :Collection
ArrayList<Individual>
HashMap
Individual
Individual
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");
しかし、ご覧のとおり、これは恐ろしく醜く、複雑すぎるため、私が見逃しているものを達成するためのはるかに簡単な方法があるかどうか疑問に思っていました.
ありがとう!