2016-05-05 8 views
-4

Ich erstelle eine GUI, die einen Namen hinzufügen, entfernen und suchen kann, den ein Benutzer eingibt. Ich würde gerne den Code kennen, mit dem ich nach Artikeln in der Arraylist suchen kann. DankeWie suche ich nach einem Artikel in einer Arraylist?

+1

Bitte ein Buch über Java abholen oder die docs/Tutorial. –

+0

Wir schreiben hier keinen Code für Sie, und Sie lesen das auf der Willkommensseite für diese Seite (oder sollten Sie haben, wie Sie das Metall haben, das sagt, dass Sie getan haben). –

+0

Haben Sie versucht, etwas zu implementieren? Haben Sie versucht, StackOverflow zu suchen? – Fjotten

Antwort

1

Sie

Java.util.ArrayList.indexOf(Object) 

Methode verwenden können, wird die Indexposition des ersten Auftretens des Elements in der Liste zurück.

Oder

java.util.ArrayList.Contains(Object o) 

Das obige Verfahren wird true zurück, wenn das angegebene Element in der Liste zur Verfügung.

0

Sie können es tun Prädikat Verwendung in einem Stream zu suchen, die Sie Liste darstellt, ist hier ein einfaches Beispiel:

List<String> listOfUsersName = Arrays.asList("toto", "tata", "joe", "marou", "joana", "johny", ""); 

String userInputSearch = "jo"; 

List<String> result =listOfUsersName.stream() 
            .filter(user -> user.contains(userInputSearch)) 
            .collect(Collectors.toList()); 

result.forEach(System.out::println); 
+0

Bitte beachten Sie, dass dies nur für Java 8 gilt. – Sweeper

1

Da Ihre Frage nicht genügend Informationen geliefert hat, werde ich einige Dinge machen:

//This is your array list that you want to search in: 
private ArrayList<String> names = new ArrayList<>(); // Assume this is full of stuff 

//This is the user input 
private String userInput; 

//This method will be called when the search button is clicked 
public void onSearchClick() { 

} 

Dies ist, wie Sie den Suchalgorithmus implementieren werden:

Für jedes Element im Array li st, wenn es die Suchzeichenfolge enthält, fügen Sie es zu den Suchergebnissen hinzu.

Das macht viel Sinn, nicht wahr?

In Code, würden Sie schreiben:

private ArrayList<String> searchInList(ArrayList<String> list, String searchString) { 
    ArrayList<String> results = new ArrayList<>(); 
    for (item in list) { 
     if (item.contains(searchString)) { 
      results.add(item); 
     } 
    } 
    return results; 
} 

Und dann in der onSearchClick Methode, rufen Sie die Suchmethode und mit den Ergebnissen etwas tun.

public void onSearchClick() { 
    ArrayList<String> searchResults = searchInList(names, userInput); 
    // display the results or whatever 
} 

Wenn Sie ein Groß- und Kleinschreibung suchen wollen, können Sie die if-Anweisung in der Suchmethode dies ändern:

if (item.toLowercase().contains(searchString.toLowercase())) 
Verwandte Themen