本文介紹了Java,使用迭代器搜索 ArrayList 并刪除匹配的對象的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
基本上,用戶提交一個字符串,迭代器在 ArrayList 中搜索該字符串.找到后,迭代器將刪除包含該字符串的對象.
Basically, the user submits a String which the Iterator searches an ArrayList for. When found the Iterator will delete the object containing the String.
因為這些對象中的每一個都包含兩個字符串,所以我很難將這些行寫成一個.
Because each of these objects contain two Strings, I am finding trouble writing these lines as one.
Friend current = it.next();
String currently = current.getFriendCaption();
感謝您的幫助!
推薦答案
你不需要它們在一行,只要在匹配時使用 remove
刪除一個項目:
You don't need them on one line, just use remove
to remove an item when it matches:
Iterator<Friend> it = list.iterator();
while (it.hasNext()) {
if (it.next().getFriendCaption().equals(targetCaption)) {
it.remove();
// If you know it's unique, you could `break;` here
}
}
完整演示:
import java.util.*;
public class ListExample {
public static final void main(String[] args) {
List<Friend> list = new ArrayList<Friend>(5);
String targetCaption = "match";
list.add(new Friend("match"));
list.add(new Friend("non-match"));
list.add(new Friend("match"));
list.add(new Friend("non-match"));
list.add(new Friend("match"));
System.out.println("Before:");
for (Friend f : list) {
System.out.println(f.getFriendCaption());
}
Iterator<Friend> it = list.iterator();
while (it.hasNext()) {
if (it.next().getFriendCaption().equals(targetCaption)) {
it.remove();
// If you know it's unique, you could `break;` here
}
}
System.out.println();
System.out.println("After:");
for (Friend f : list) {
System.out.println(f.getFriendCaption());
}
System.exit(0);
}
private static class Friend {
private String friendCaption;
public Friend(String fc) {
this.friendCaption = fc;
}
public String getFriendCaption() {
return this.friendCaption;
}
}
}
輸出:
$ java ListExample
Before:
match
non-match
match
non-match
match
After:
non-match
non-match
這篇關(guān)于Java,使用迭代器搜索 ArrayList 并刪除匹配的對象的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!
【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!