gpt4 book ai didi

java - 如何在Java中复制除1个键之外的键值列表?

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

我在Java中有1个键:值对primaryList列表,现在我想复制除了primaryListExceptDate中的一个关键日期之外的完整列表。谁可以帮我这个事?我知道我们可以使用 for 循环来做到这一点,但我想知道还有其他有效的方法吗?

最佳答案

据我了解,您有一个 Record 对象列表,这些对象将值对作为键、值!?

然后你可以使用Stream api来做你想做的事情。像这样的东西:

List<Record> primaryListExceptDate = primaryList.stream()
.filter(record -> !record.getKey().equals(unwantedDateInstance))
.collect(Collectors.toList());

这将为您提供一个新列表,其中不包含包含该不需要的日期的记录

更新:您要求提供Vector示例。

我做了这个测试,效果很好,d2 被删除了。 Vector 实现了 List,因此可以进行强制转换。 Collectors 没有 toVector 方法,因为 Vector 已过时:

public class Testa {

public static void main(String[] args) {
Date d1 = new Date(100,1,2);
Date d2 = new Date(101,2,3);
Date d3 = new Date(102,3,4);
Date test = new Date(101,2,3);

Vector<Record> primaryList = new Vector<>();
primaryList.add(new Record(d1, new Object()));
primaryList.add(new Record(d2, new Object()));
primaryList.add(new Record(d3, new Object()));

List<Record> primaryListExceptDate = primaryList.stream()
.filter(record -> !record.getKey().equals(test))
.collect(Collectors.toList());

primaryListExceptDate.forEach(r -> System.out.println(r.getKey().toString()));
}

static class Record {
Date key;
Object value;

public Record(Date k, Object v) {
this.key = k;
this.value = v;
}

public Date getKey() {
return key;
}
}
}

关于java - 如何在Java中复制除1个键之外的键值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45976875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com