有什么方法可以做到吗?我正在寻找但找不到任何东西。
另一个问题:我需要这些方法来过滤文件。有些是 AND
过滤器,有些是 OR
过滤器(就像在集合论中一样),所以我需要根据所有文件和包含这些文件的联合/相交 ArrayLists 进行过滤。
我应该使用不同的数据结构来保存文件吗?还有什么可以提供更好的运行时间的吗?
原文由 yotamoo 发布,翻译遵循 CC BY-SA 4.0 许可协议
有什么方法可以做到吗?我正在寻找但找不到任何东西。
另一个问题:我需要这些方法来过滤文件。有些是 AND
过滤器,有些是 OR
过滤器(就像在集合论中一样),所以我需要根据所有文件和包含这些文件的联合/相交 ArrayLists 进行过滤。
我应该使用不同的数据结构来保存文件吗?还有什么可以提供更好的运行时间的吗?
原文由 yotamoo 发布,翻译遵循 CC BY-SA 4.0 许可协议
集合(所以 ArrayList 也是)有:
col.retainAll(otherCol) // for intersection
col.addAll(otherCol) // for union
如果接受重复,则使用 List 实现,如果不接受,则使用 Set 实现:
Collection<String> col1 = new ArrayList<String>(); // {a, b, c}
// Collection<String> col1 = new TreeSet<String>();
col1.add("a");
col1.add("b");
col1.add("c");
Collection<String> col2 = new ArrayList<String>(); // {b, c, d, e}
// Collection<String> col2 = new TreeSet<String>();
col2.add("b");
col2.add("c");
col2.add("d");
col2.add("e");
col1.addAll(col2);
System.out.println(col1);
//output for ArrayList: [a, b, c, b, c, d, e]
//output for TreeSet: [a, b, c, d, e]
原文由 lukastymo 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.2k 阅读
8 回答5.9k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.2k 阅读✓ 已解决
这是一个没有使用任何第三方库的简单实现。与
retainAll
、removeAll
和addAll
相比的主要优点是这些方法不会修改输入到方法的原始列表。