2016-05-02 10 views
0

私はいくつかの要素のArrayListを持っていますpath = [1, 2, 5, 7]。私は、この目的のためにリスト反復子を使用しますが、私は取得していますがあるarraylistから2つの数字の必要な組み合わせを取得する方法は?

1,2 
2,5 
5,7 

:私はこの答え見ている

1,2 
2,2  
5,7 
7,7 

how to get all combination of an arraylist? をしかし、今、私は次のように、これらの要素から値を取得したいです私はこのようなすべての組み合わせを必要としません。

私のコードは次のとおりです。

public class iterator { 

public static void main(String[] args){ 
    ArrayList<String> path=new ArrayList<>(); 
    path.add("1"); 
    path.add("2"); 
    path.add("5"); 
    path.add("7"); 

    System.out.println(path); 
    ListIterator<String> itr = path.listIterator(); 
    while(itr.hasNext()) 
    { 
     System.out.println(itr.next()+ "," + itr.next()); 
     System.out.println(itr.previous()+ "," + itr.next()); 
    } 

} 

} 

私の質問はどのように私は必要な結果を得ることができるのですか?

+1

一般的な要件は何ですか。あなたの配列が[2、3、5、6、7、8、9]であれば、どのような組み合わせが必要でしょうか? –

+1

それから私は望みます:(2,3)、(3,5)、(5,6)、(6,7)、(7,8)、(8,9) – Nitu08

答えて

1
for (int i = 0; i < path.size() - 1; i++) { 
    System.out.println(path.get(i) + "," + path.get(i + 1)); 
} 
+0

それは完璧に動作します。 – Nitu08

+0

@ Nitu08あなたはshmoselの答えを受け入れるべきです。あなたの質問のスコアのすぐ下にあるチェックマークをクリックしてください。 – Tibrogargan

+0

@Tibrogargan彼らは彼らを最も助けるものをチェックすることができます。 – 4castle

1

あなたはこれを達成するためのカウンタとループのための伝統的な試すことができます。

for (int i = 0; i < path.size() - 1; i++) { 
    System.out.println(path.get(i) + ", " + path.get(i+1)); 
} 
+0

'シンボルpath.length'を見つけることができません – Tibrogargan

+0

ありがとうございます...ちょっとした変更が必要です。path.lengthではなくpath.size()が動作しています。 – Nitu08

+0

@Tibrogargan人々はここに投稿するものをコンパイルするためにいつも食べているわけではありません。私が投稿したものは、何をする必要があるのか​​を説明するのに十分でした。ちょうど私が長さを入力してsize()ではないと答える必要があるので、答えはdownvotedする必要がありますか? –

-1

問題は.next()は、次の要素を取得し、はカーソルを進めていることです。 ListIteratorを使用するには、次のようにします。

while (itr.nextIndex() + 1 < path.size()) { 
    System.out.println(itr.next() + "," + itr.next()); 
    itr.previous(); // back up 1 to get the duplicate 
} 
+0

なぜdownvote?それはうまく動作します。 – 4castle

+0

明らかに、これは最良の答えではありませんが、 'ListIterator'がなぜ機能していないのかを知りたがっている場合に備えて、これは参考になるはずです。 – 4castle

関連する問題