java - 按特定值更改 Arraylist 顺序
问题描述
我有json对象类型arraylist,jsonobject包含字符串和布尔值。现在我的要求是设置arraylist以使其具有真实值。获取顶部包含真实值的所有jsonobject。那么我怎样才能通过特定值更改arraylist顺序. 假设我有 {matched:true},{matched:false},{matched:true},{matched:false},{matched:false},{matched:true} 的列表。但我想要列表 {matched: true},{matched:true},{matched:true},{matched:false},{matched:false},{matched:false}。使用语言 java。
解决方案
在科特林:
val list = arrayListOf(false, true, false, true, false)
list.sortBy { it == false }
输出:
[true, true, false, false, false]
下面是一个例子,如果我们想从一个对象中排序:
// Your model class
class SomeObject(var value: String, var state: Boolean)
...
val list = arrayListOf<SomeObject>(
SomeObject("some value", false),
SomeObject("some value2", true),
SomeObject("some value3", false),
SomeObject("some value4", false),
SomeObject("some value5", true))
list.sortBy { it.state == false }
在 Java 中:
// Model ->
public class SomeObject {
private String name;
private Boolean state;
public SomeObject(String name, Boolean state) {
this.name = name;
this.state = state;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getState() {
return state;
}
public void setState(Boolean state) {
this.state = state;
}
}
...
ArrayList<SomeObject> list = new ArrayList<>();
list.add(new SomeObject("some value", false));
list.add(new SomeObject("some value2", true));
list.add(new SomeObject("some value3", false));
list.add(new SomeObject("some value4", false));
list.add(new SomeObject("some value5", true));
list.sort((o1, o2) -> Boolean.compare(!o1.getState(), !o2.getState()));
list.forEach((it) -> System.out.println(it.getState()));
输出:
[true, true, false, false, false]
推荐阅读
- javascript - 在javascript中调用本机swift函数
- ios - 从显示为弹出框的其他视图控制器推送到视图控制器 - 没有故事板
- sql - 我们可以在一个表中插入并通过查看其他表中插入的 id 的值来触发更新插入行的一列吗?
- api - 更改路线后闪烁存储数据
- omnet++ - omnet++ INET:生成简单的 ARP 欺骗模拟
- java - java - 如何在java apache poi中动态合并具有固定col范围的不同行的20列
- python-3.x - 如果 pandas 数据框的第一列不匹配,则加入第二列
- linux - 如何在 Linux 中为特定本地用户限制特定命令(例如“kill”)
- regex - 正则表达式匹配带有字母数字或不带字母数字的非 ascii 字符
- python-3.x - 芹菜节拍调度程序未使用 crontab 按预期调度任务