日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java arraylist 过滤_关于java:ArrayList过滤器

發(fā)布時間:2024/8/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java arraylist 过滤_关于java:ArrayList过滤器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本問題已經(jīng)有最佳答案,請猛點這里訪問。

如何從Java ARAYLIST中篩選出一些東西,如:

你好嗎?

你怎么做

邁克

過濾器是"怎樣"的,它可以去除喬和邁克。

這可能有助于stackoverflow.com/questions/122105/…

最好的解決方案是使用其他的收集數(shù)據(jù)結(jié)構(gòu),而不是arraylist:code.google.com/p/google-collections

在Java-8中,他們引入了以Predicate為參數(shù)的方法removeIf。

所以很容易做到:

List list = new ArrayList<>(Arrays.asList("How are you",

"How you doing",

"Joe",

"Mike"));

list.removeIf(s -> !s.contains("How"));

調(diào)用需要API級別24

也許最好的方法是用番石榴

List list = new ArrayList();

list.add("How are you");

list.add("How you doing");

list.add("Joe");

list.add("Mike");

Collection filtered = Collections2.filter(list,

Predicates.containsPattern("How"));

print(filtered);

印刷品

How are you

How you doing

如果要將篩選后的集合作為列表,可以使用此項(也可以從guava獲取):

List filteredList = Lists.newArrayList(Collections2.filter(

list, Predicates.containsPattern("How")));

集體2中的2是什么?

DavoudTaghawi Nejad,這可能是因為在標準Java中已經(jīng)有EDCOX1 1類。所以很明顯哪個類是哪個類,如果它們在一個類中使用,那么您不必使用完全限定名來區(qū)分它們。

在android中,它不能解決謂詞作為謂詞時的給出錯誤。

知道了。。我使用了錯誤的庫..現(xiàn)在我用的是guava-16.0.1.jar

如何過濾不是"如何"的字符串?

@泰美得使用not():filter(list, not(Predicates.containsPattern("How"))。

遍歷列表并檢查是否包含字符串"how",如果包含字符串,則將其刪除。您可以使用以下代碼:

// need to construct a new ArrayList otherwise remove operation will not be supported

List list = new ArrayList(Arrays.asList(new String[]

{"How are you?","How you doing?","Joe","Mike"}));

System.out.println("List Before:" + list);

for (Iterator it=list.iterator(); it.hasNext();) {

if (!it.next().contains("How"))

it.remove(); // NOTE: Iterator's remove method, not ArrayList's, is used.

}

System.out.println("List After:" + list);

輸出:

List Before: [How are you?, How you doing?, Joe, Mike]

List After: [How are you?, How you doing?]

下一步()在第一次調(diào)用它時返回什么?

第一次調(diào)用it.next()將返回集合(list)中的第一個項。

我喜歡這個,因為它是最簡單的,不涉及第三方圖書館。

給自己寫一個過濾函數(shù)

public List filter(Predicate criteria, List list) {

return list.stream().filter(criteria).collect(Collectors.toList());

}

然后使用

list = new Test().filter(x -> x > 2, list);

這是Java中最簡潔的版本,但是需要JDK 1.8來支持lambda演算。

我同意先前的答案,谷歌的番石榴可能在這里幫助很大,可讀性方面:

final Iterables.removeIf(list, new Predicate() {

@Override

public boolean apply(String input) {

if(input.contains("How")) { //or more complex pattern matching

return true;

}

return false;

}

});

請注意,這基本上是一個guava的副本——如何根據(jù)謂詞從列表中刪除,以跟蹤刪除的內(nèi)容?

由于您沒有給我們太多信息,我假設(shè)您編寫代碼的語言是C。首先:首選System.Collections.Generic.List而不是ArrayList。第二:一種方法是循環(huán)遍歷列表中的每一項,并檢查它是否包含"how"。另一種方法是使用LINQ。下面是一個快速的例子,它過濾掉了所有不包含"如何"的項目:

var list = new List();

list.AddRange(new string[] {

"How are you?",

"How you doing?",

"Joe",

"Mike", });

foreach (string str in list.Where(s => s.Contains("How")))

{

Console.WriteLine(str);

}

Console.ReadLine();

"因為你沒有給我們很多信息",但有你的信息,帖子被標記為Java。

@新建大檢查編輯歷史記錄…StAccOfFult.COM/PASS/9146224/修訂"Java"標簽在該答案之后被添加。

總結(jié)

以上是生活随笔為你收集整理的java arraylist 过滤_关于java:ArrayList过滤器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。