1

好的,所以我有一个 LinkedList,我有一个字符串。我想检查字符串是否包含在任何 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 方法,我只是将它用于此目的。

那么我该如何模拟我的例子呢?

谢谢

4

4 回答 4

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 个实例,则可以中断循环。

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

于 2011-10-19T22:35:58.477 回答
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!");
        } 
    }
于 2011-10-19T22:39:04.760 回答
0

链表中有一个 contains 方法。

http://download.oracle.com/javase/1.4.2/docs/api/java/util/LinkedList.html#contains(java.lang.Object )

于 2011-10-19T22:36:47.063 回答
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);
            }
        }
    }
}
于 2011-10-19T22:42:50.837 回答