に追加します。Javaの比較、二つのリストを反復処理は、その後、私は3つのリストを持っている別のリスト
listA listB
1,a,tf b,true
2,b,tf a,false
3,c,tf c,true
及びIは、(listA
年代listB
とtf
のtrue
/false
を置き換える)listA
の順にlistA
+ listB
ことがlistC
したいと思います。
listC
1,a,false
2,b,true
3,c,true
はここLISTAとListBのための個々のイテレータ間を分割し、インデックス化された状態で自分のコード
Iterator a= listA.iterator();
Iterator b= listB.iterator();
while(a.hasNext()){
while(b.hasNext()){
if(String.valueOf(a.next()).split(",")[1].equals(String.valueOf(b.next()).split(",")[0])){
listC.add(String.valueOf(a.next()).replaceAll("tf", String.valueOf(b.next()).split(",")[1]));
}
}
}
だ、それが正常に動作しますが、私は上記のコードを実行すると、プログラムは単にフリーズします。何かご意見は?
私はそのフリーズについてはよく分からないが、方法が最も可能性の高いあなたが期待する結果を持っていないイテレータを使用。あなたは)(何 'のhasNextに読むべき'と '()次は'行うことを意味しているので、あなたはおそらく実現したいことのhasNext() '(あなたがそうであるように'への呼び出し後に呼び出して '次の()'を複数回if文の中に 'a'と' b'を追加し、さらにbループの 'a'を追加する)は良い考えではありません。 – Thomas
ListBの代わりにMapを使用すると、簡単に作業できます。 '1、a、tf'の独自のクラスを作ることは、文字列を分割するのではなく、条件を簡単に作成するのに役立ちます。あなたはこれらの変更を適用する場合は、あなたのコードは次のようになります( 'YOURCLASS YC:LISTA)について{yc.setTrueFalse(mapB.get(yc.getName()));}'。これはlistAの要素を実際に更新しますが、別のlistCを簡単に作成するソリューションを構築できます。 –
Pshemo