用Java筛选列表的最简单,最有效的方法?

彼得·普雷斯科特

我想从传入推文流中的每个短语中过滤不相关的单词。

我可以这样使用ArrayList来做到这一点:

import java.util.ArrayList;

// Example Tweet
String tweetText = "Awful glad vaccine is coming at last! #COVID19";

// First convert tweet text to array of words
String text = tweetText
                .replaceAll("\\p{Punct}", "")
                .replaceAll("\\r|\\n", "")
                .toLowerCase();

String[] words = text.split(" ");

// We define an array of irrelevant words to be filtered out
String[] irrelevantWords = {"is", "at", "http", "https", "football"};

// first we create an extensible ArrayList to add filtered words to
ArrayList<String> filteredWords = new ArrayList<String>();

// we assume each word is relevant to begin with...
boolean relevant;

// ... and then we check by iterating over each word...
for (String w : words){
    
    // ... assuming initially that it is relevant ...
    relevant = true;
    
    // ... and iterating over each irrelevant word ...
    for (String irrelevant : irrelevantWords){
        
        // ... and if a word is the same as an irrelevant word
        if (w.equals(irrelevant)){ 
            
            // ... we know that it is not relevant.
            relevant = false; 
        }
    }
    // If, having compared the word to all the irrelevant words,
    // it is still found to be relevant, we add it to our ArrayList.
    if (relevant == true){filteredWords.add(w);}
}
// NB: This is not the most efficient method of filtering words,
// but it is the most simple to understand and implement.

System.out.println(filteredWords);

但是,尽管对于Java新手来说,这很容易理解和实现(基本上,它仅依赖于循环的迭代,尽管我们必须导入ArrayList),但它的效率很低。

这样做的最佳方法是什么(最简单或更有效)?

VinayakaHegde

使用哈希集存储不相关的单词。

Set<String> irrelevantWords = new HashSet<String>();

将单词添加到此集合中,并用于irrelevantWords.contains(word)检查单词是否不相关。

来自哈希集的查找是O(1)对列表/数组中的O(n)。由于您在循环中使用查找,因此可以大大提高性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

最有效/最简单的权限系统方法?

来自分类Dev

用Java存储图像的最有效方法

来自分类Dev

用Java填写地图的最有效方法

来自分类Dev

用jquery筛选类别的最有效方法是什么?

来自分类Dev

筛选包含(几乎).Net重复项的列表的最有效方法

来自分类Dev

用Java筛选列表的最简单方法是什么?

来自分类Dev

在Java中将字符串格式化为图表时,最简单但最有效的方法是什么?

来自分类Dev

JS:通过迭代筛选结果的最有效方法?

来自分类Dev

筛选搜索的最有效方法是什么?

来自分类Dev

筛选wxGrid数据的最有效方法?

来自分类Dev

在Scala中创建最小堆的最简单,最有效的方法是什么?

来自分类Dev

Excel VBA中将日期分类为星期的最有效,最简单的方法

来自分类Dev

从列表中删除重复项的最有效方法

来自分类Dev

为Android应用创建列表的最有效方法

来自分类Dev

建立结合相关字段的列表的最有效方法

来自分类Dev

建立随机排列列表的最有效方法

来自分类Dev

平均列表最有效的方法<int>

来自分类Dev

从groupby返回列表的最有效方法

来自分类Dev

检查列表中值类型的最有效方法

来自分类Dev

建立随机排列列表的最有效方法

来自分类Dev

在MySQL中存储列表的最有效方法

来自分类Dev

删除列表中条目的最有效方法

来自分类Dev

确定列表是否为空的最有效方法

来自分类Dev

在 Python 中创建字典列表的最有效方法

来自分类Dev

Python:打印列表的最有效方法是什么?

来自分类Dev

用Java处理String Freemarker语法的最有效方法是什么

来自分类Dev

用Java比较MySQL表中行的最有效方法是什么

来自分类Dev

用Java分割字符串的最有效方法

来自分类Dev

使用Java最有效的方法汇总数据列表

Related 相关文章

  1. 1

    最有效/最简单的权限系统方法?

  2. 2

    用Java存储图像的最有效方法

  3. 3

    用Java填写地图的最有效方法

  4. 4

    用jquery筛选类别的最有效方法是什么?

  5. 5

    筛选包含(几乎).Net重复项的列表的最有效方法

  6. 6

    用Java筛选列表的最简单方法是什么?

  7. 7

    在Java中将字符串格式化为图表时,最简单但最有效的方法是什么?

  8. 8

    JS:通过迭代筛选结果的最有效方法?

  9. 9

    筛选搜索的最有效方法是什么?

  10. 10

    筛选wxGrid数据的最有效方法?

  11. 11

    在Scala中创建最小堆的最简单,最有效的方法是什么?

  12. 12

    Excel VBA中将日期分类为星期的最有效,最简单的方法

  13. 13

    从列表中删除重复项的最有效方法

  14. 14

    为Android应用创建列表的最有效方法

  15. 15

    建立结合相关字段的列表的最有效方法

  16. 16

    建立随机排列列表的最有效方法

  17. 17

    平均列表最有效的方法<int>

  18. 18

    从groupby返回列表的最有效方法

  19. 19

    检查列表中值类型的最有效方法

  20. 20

    建立随机排列列表的最有效方法

  21. 21

    在MySQL中存储列表的最有效方法

  22. 22

    删除列表中条目的最有效方法

  23. 23

    确定列表是否为空的最有效方法

  24. 24

    在 Python 中创建字典列表的最有效方法

  25. 25

    Python:打印列表的最有效方法是什么?

  26. 26

    用Java处理String Freemarker语法的最有效方法是什么

  27. 27

    用Java比较MySQL表中行的最有效方法是什么

  28. 28

    用Java分割字符串的最有效方法

  29. 29

    使用Java最有效的方法汇总数据列表

热门标签

归档