2011-10-19 13 views
1

好吧,我有一个LinkedList,我有一个字符串。我想检查字符串是否包含在任何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个实例,你可以打破循环。

你也想使用泛型。看代码。否则你将不得不将节点转换为一个字符串。

+0

这是否工作,如果链表中有字符串和对象? –

+0

用于阅读该问题。 :) –

+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的泛型来强制它们全部是字符串可能会有所帮助。

 /* 
* 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

这很完美!但是有一个问题,如果LinkedList不包含任何元素,那么“for”语句不会执行“else”。这是我可以修复的东西吗? – Blackvein

+0

当然,只要将它包围在if语句中,该语句检查列表的大小是否为0,并在这种情况下打印出适当的内容。 (如果你需要帮助,Javadocs是你的朋友) –

相关问题