2011-10-19 1 views
1

さて、私はLinkedListを持っています。私はStringを持っています。 StringがLinkedList要素のいずれかに含まれているかどうかを確認したい。たとえば :Java:文字列がLinkedList要素の一部であるかどうかをチェックする方法は?

String a = "apple"; 
String listelement = "a bunch of apples"; 
LinkedList list = new LinkedList(); 
list.add(listelement); 
if(list.containsany(a){ 
    System.out.println("Hooray!"); 
} 

は "万歳!" の印刷につながります

明らかにlist.containsanyは実際のLinkedListメソッドではありません。私はこの目的のために使用しています。

私のサンプルをどのようにシミュレートできますか?

おかげ

答えて

9
String a = "apple"; 
String listelement = "a bunch of apples"; 
List<String> list = new LinkedList<String>(); 
list.add(listelement); 
for(String s : list){ 
    if(s.contains(a)){ 
    syso("yes"); 
    } 
} 

は、これはそれを行う必要があり、ノードが特定の文字列が含まれて見つけるために、あなたは、すべてのノードを反復処理する必要があります。インスタンスが1つしか必要ない場合は、ループを解除できます。

また、Genericsを使用します。コードを見てください。それ以外の場合は、ノードをStringにキャストする必要があります。

+0

リンクリストに文字列とオブジェクトが含まれている場合、これは機能しますか?質問を読むためには –

+0

+1。 :) –

+1

これは文字列に対してのみ動作します。オブジェクトを使用している場合、それをキャストする必要があります。 'LinkedList ' – DarthVader

1
String a = "apple"; 
    String listelement = "a bunch of apples"; 
    LinkedList<String> list = new LinkedList<String>(); 
    list.add(listelement); 
    Iterator<String> li = list.iterator(); 
    while (li.hasNext()) { 
     if (li.next().contains(a)) { 
      System.out.println("Hooray!"); 
     } 
    } 
0

あなたは、リスト全体で繰り返し処理する必要があり、それが文字列だったかどうかを確認するために、各ノードの値をチェックします。リンクリストのすべてのメンバーが文字列であることを保証できれば、JavaのGenericsを使用してそれらをすべてStringにすることができます。

 /* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package javaapplication1; 

import java.util.LinkedList; 

public class JavaApplication1 { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     String a = "apple"; 
     String listelement = "a bunch of apples"; 
     LinkedList<String> list = new LinkedList<String>(); 
     list.add(listelement); 
     list.add(new String("boogie")); 
     for (String s : list) { 
      if (s.contains(a)) { 
       System.out.println("yes," + s + " contains " + a); 
      } else { 
       System.out.println("no," + s + " does not contain " + a); 
      } 
     } 
    } 
} 
+0

これは完璧です!しかし、 "for"ステートメントは、LinkedListに要素が含まれていない場合、 "else"を実行しません。これは私が修正できるものですか? – Blackvein

+0

もちろん、リストのサイズが0であるかどうかをチェックするif文で囲み、その場合は適切なものを出力します。 (これについて助けが必要な場合、Javadocはあなたの友人です) –

関連する問題