gpt4 book ai didi

java - 按特定值更改 Arraylist 顺序

转载 作者:行者123 更新时间:2023-12-02 04:10:31 25 4
gpt4 key购买 nike

我有 json 对象类型 arraylist,并且 jsonobject 包含字符串和 boolean 值。现在我的要求是按具有 true 值的顺序设置 arraylist。获取顶部包含 true 值的所有 jsonobject。那么我如何更改 arraylist 顺序按具体值。假设我有一个列表 {匹配:true},{匹配:false},{匹配:true},{匹配:false},{匹配:false},{匹配:true}。但我想要 list {匹配:真},{匹配:真},{匹配:真},{匹配:假},{匹配:假},{匹配:假}。使用java语言。

最佳答案

在 Kotlin 中:

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]

关于java - 按特定值更改 Arraylist 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56691842/

25 4 0