2016-12-12 23 views
0
ArrayList<Integer> initgenome = new ArrayList<>(5000); 
    initgenome.addAll(Collections.nCopies(10, 1)); 
    initgenome.addAll(Collections.nCopies(4990, 0)); 

    ArrayList<Integer> genometwo = new ArrayList<>(5000); 
    genometwo.addAll(Collections.nCopies(10, 2)); 
    genometwo.addAll(Collections.nCopies(4990, 0)); 

    ArrayList<Integer> genomethree = new ArrayList<>(5000); 
    genomethree.addAll(Collections.nCopies(10, 3)); 
    genomethree.addAll(Collections.nCopies(4990, 0)); 

    ArrayList<Integer> genomefour = new ArrayList<>(5000); 
    genomefour.addAll(Collections.nCopies(10, 4)); 
    genomefour.addAll(Collections.nCopies(4990, 0)); 

私はJavaを使用してEclipseでプロジェクトを行っていますが、初期化時にこれらのゲノムの1つをランダムにピッキングするオブジェクトを持っています。とにかく、それぞれのarraylistに色を付けることができれば、私は興味を持っていたので、拾ったゲノムを視覚的に見ることができましたか?ありがとう!ArrayListに色を割り当てる

+1

どのように色を見たいですか?画面上? – Mordechai

+0

プログラムを実行すると、グリッド上の微生物がポップアップ表示されます。今、彼らはすべて青です。 – ckrup92

+0

どのようなGUIツールキットを使用していますか? Swing、JavaFX? – Mordechai

答えて

3

マッピング(Map)を追加します。

Map<ArrayList<Integer>, String> genomesToColors = new HashMap<>(); 
genomesToColors.add(initgenome, "red"); 
genomesToColors.add(genometwo, "blue"); 
genomesToColors.add(genomethree, "green"); 
genomesToColors.add(genomefour, "purple"); 

次に、あなたがあなたのArrayListを選んだ後:

ArrayList<Integer> genome = // however you do it. 
String color = genomesToColors.get(genome); 

ゲノムのあなたのアイデアがより複雑になっているので、あなたが作成することもできますGenomeクラス。 sequence属性とcolor属性を付けることができます。

public class Genome { 

    public List<Integer> sequence = new ArrayList<Integer>(); 
    public String color; 

    // Getters, setters, whatever you want. 

} 

EDIT:あなたのゲノムが変異することがありますので、私はクラスベースのソリューションと一緒に行くお勧めします。より容易に拡張可能であり、OOPを利用する。

+1

マップキーとして可変オブジェクトを持つことは、一般的には悪い考えです。 –

+1

とにかく、ゲノムが改変されている(突然変異?)なら、おそらくクラスベースの解決策が優れているはずです。ゲノムが突然変異していない場合は、不変のリストを用いるべきである。 http://stackoverflow.com/questions/9973596/arraylist-as-key-in-hashmap – Adam

+0

ゲノムは突然変異することができます。 – ckrup92

関連する問題