2011-01-02 11 views
1

私はオブジェクトの2つのリストを比較する方法を持っています。ネストされたループから抜け出すには?

オブジェクトは両方のリストで一意です。

私は2つのオブジェクトが正しく一致した場合にループの残りのサイクルのためのインナーを終了したいループ

ためにネストされた2レベルでそれをやって。

forループの残りの繰り返しをJavaで終了することはできますか?

おかげ

サンプルコード:インナー

public class NestedForLoops { 

    public static void main(String[] args) { 
    String one = "abcdefgh"; 
    String two = "ijkhmnop"; 
    System.out.println(nestedForLoop(one, two)); 

    } 

    public static String nestedForLoop(String one, String two) 
    { 
    String res = ""; 
    for(int i = 0; i < one.length(); i++) 
    { 
     for(int j = 0; j < two.length(); j++) 
     { 
      if(one.charAt(i) == two.charAt(j)){ 
       System.out.println(i + " " + j); 
       res += one.charAt(i); 
       continue; 
      } 
     } 
    } 
    return res; 
    } 

} 
+0

心? – mauris

+0

@ thephpdeveloper:私は答えを得た。私は休憩はstatmetnsの場合にのみ使用できると思った。私はそれに試してみたはずです。さて、私はどのように継続して役に立つのか疑問に思う。 –

答えて

4

ブレイク:

for (Object o1 : list1) 
    for (Object o2 : list2) 
     if (o1.equals(o2)) 
      break; 

ループのブレーク外側:

outer: for (Object o1 : list1) 
    for (Object o2 : list2) 
     if (o1.equals(o2)) 
      break outer; 
1

使用内部ループのbreak;ステートメント外側のものも終了したい場合は、外側のラベルにラベルを付けてbreak label;を使用する必要があります。

0

のラベリング動作します(すでに答えとして)

方法は、まさにその、平等をチェックし、その後、あなたはまた、単に返すことはありませために小さな十分な方法のように見える、オブジェクトが一致するメソッドから返すことができない場合悪い習慣。個人的には、ラベルを使用するより読みやすいことがわかります。別のメソッドを作成し、return文がはるかに一般的なので、読みやすくする必要がありますreturn代わりbreakのを使用して、代わりに

outside: 
for (...) 
    for (...) 
    if (found) break outside; 

1

はいです。 2つのオブジェクトの一致をチェックするif文を入れ、ifの中にbreak文を入れます。ここでのコードサンプルです:あなたがコードで、これまで何をやったか、私たちを示す

while(coinditions for loop 1) 
{ 
    // loop body 
    while(conditions for loop 2) 
    { 
     //loop body 

     if(object1.compareTo(object2)==0) 
     { 
       break; 
     } 
    } 
} 
1
public boolean foundEqual(List<Object> list1, List<Object> list2) { 
    if (list1 == null || list2 == null) { 
    throw new NullPointerException("Lists can not be null"); 
    } 

    for (Object o1 : list1) 
    for (Object o2 : list2) 
     if (o1.equals(o2)) { 
      return true; 
     } 

    return false; 
} 
関連する問題