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