Java: Как проверить, является ли строка частью какого-либо элемента LinkedList? - PullRequest
1 голос
/ 20 октября 2011

Хорошо, у меня есть 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 ]

9 голосов
/ 20 октября 2011
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.Посмотри на код.в противном случае вам придется привести узел в строку.

1 голос
/ 20 октября 2011
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 голосов
/ 20 октября 2011

Вам нужно будет выполнить итерации по списку и проверить значение каждого узла, чтобы увидеть, является ли оно строкой.Если вы можете гарантировать, что все члены связанного списка должны быть строками, то может помочь использование Generics в 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 голосов
/ 20 октября 2011
В связном списке

есть метод содержимого.

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

...