假设我有一个对象列表,我想根据对象的某个属性是否包含特定字符串在同一个列表中对它们进行分区。
SomeClassA someClass:
String attributeA;
... (other attributes)
例如,假设我有:
List<SomeClassA> someListA = (a list of SomeClassA);
我想将 SomeClassA
的所有实例放在 attributeA
不包含字符串的所有实例之后,其中 attributeA
包含“_DUD”。
一个选项: 我知道我们可以遍历列表,根据条件是否为真(包含“_DUD”)创建并添加到两个列表,然后在第一个列表之后添加第二个列表,但是有没有办法做到这一点创建这些中间列表?
我宁愿不进行完整排序,因为顺序并不重要。我们只想将所有包含 _DUD 属性的实例放在一起。
(当然,这是一个替换了名称的简化示例,但我希望它能满足整体需求)
谢谢!
最佳答案
我建议使用以下算法:
- 从列表的开头找到下一个包含“_DUD”的元素
- 从列表末尾查找下一个不包含“_DUD”的元素
- 交换元素
- 重复直到你遇到
关于java - 根据 boolean 值对列表进行部分排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45806330/