- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我有一个非常简单的类 Person,其中包含姓名和地址:
lớp công khai Person {
Tên chuỗi;
Địa chỉ chuỗi;
public Person(final String name,
final String address) {
this.name = tên;
this.address = address;
}
công khai String getName() {
trả về tên;
}
public void setName(final String newName) {
this.name = newName;
}
public String address() {
return address;
}
public void setAddress(final String newAddress) {
this.address = newAddress;
}
}
我现在有一个包含所有已知 Person 对象的集合,我想仅根据姓名更新其中一个人的地址。为此,我有以下内容:
persons.stream()
.filter(person -> personToUpdate.getName().equalsIgnoreCase(person.getName()))
.forEach(person -> {
person.setAddress(personToUpdate.getAddress());
});
但是,我的问题是当我有一个完全不在 Set 中的新人时。我如何检查集合以查看此人是否存在,如果存在,请更新他们的地址。但如果它们不存在,请将它们添加到列表中。我知道这很简单,但无论出于何种原因,我现在都无法想到如何实现这一目标。我不想继续创建包含所有名称的列表、比较新名称、它们是否在列表中等等。我宁愿让它尽可能简洁。
编辑:名称将是唯一的!
câu trả lời hay nhất
除非您需要单行代码,否则您可以简单地利用 Không bắt buộc
的优势:
Optional person = persons.stream()
.filter(p -> personToUpdate.getName().equalsIgnoreCase(p.getName()))
.findFirst();
if (person.isPresent()) {
person.get().setAddress(personToUpdate.getAddress());
} khác {
persons.add(personToUpdate);
}
如果您使用的是 Java 9+,这看起来会更好:
persons.stream()
.filter(p -> personToUpdate.getName().equalsIgnoreCase(p.getName()))
.findFirst()
.ifPresentOrElse(
p -> p.setAddress(personToUpdate.getAddress()),
() -> persons.add(personToUpdate)
);
这当然假设名称是唯一的(正如您希望更新一个条目)。
关于java - 如果 Person 存在则更新 Set
Tôi có một tập hợp các số nguyên được gọi là lưới mà tôi đang cố gắng lặp lại để xác định xem các số nguyên từ hoặc từ đó đã được thêm vào tập hợp hiện có hay chưa; nếu vậy, tôi thêm chúng vào tập hợp hiện có (đây là Để theo dõi sự kết hợp của các số nguyên đó). tất cả các mạch ngắn trong lưới điện). Tuy nhiên, tôi không thể có được
Điều này rất lạ: A là một tập hợp và B là một tập hợp các tập hợp: Set A=new HashSet(); Set > B=new HashSet>();
Trong Agda, loại forall được xác định theo cách sao cho tất cả các loại sau là Set1 (trong đó Set1 là loại Set và loại A là Set): Set → AA → Set Set → Set
Trong haskell tôi có thể viết hàm f trong đó f :: Set a -> Set a -> Set a Nếu tôi lấy hai bộ s1 và s2 thuộc loại Set Int rồi thực hiện f s1 s2 thì nó sẽ
在使用 Spring 时,我遇到了一个奇怪的问题。我有一个类,它接受一个集合作为输入,因为该类是底层框架的,所以我无法更改它。这是它的声明 private Set evaluate; public S
我是流的新手,我想通过将流操作应用于其条目集来修改 map ,但由于编译错误我无法这样做。 下面的代码只是创建了一个新的 map 对象并为其分配了一些整数值。然后它尝试通过在其条目集上应用流操作来删除
无论我看什么,我都会看到集合的输入是这样完成的: Set set = new HashSet(); 但是,我像这样定义我的集合 Set set = new HashSet(); 而且我仍然进行类型检查
我想对于 set -e 我可以捕获信号,但其他的我不知道。 最佳答案 为了完整性: set -e:如果命令失败则退出 set -u:如果在设置之前引用变量,则会出现错误 set -x:显示运行的命令
Set 维护唯一记录,并在尝试复制现有元素时更新现有记录。 考虑以下两种情况。您认为两者之间哪一个代码更快、更高效? 场景 1:使用 addAll() Set uniqueSet = new Hash
我在 Fedora 上做这个 问题: (sandbox)[root@localhost mysite]# django-admin.py runserver Error: Could not impo
https://codeforces.com/contest/1435/submission/96757666->使用set.upper_bound() https://codeforces.com/
使用 MySQL,我已将连接字符集设置为 UTF-8: SET NAMES 'utf8mb4'; SET CHARACTER SET 'utf8mb4'; 这样我就能以 UTF-8 格式返回所有内容,
在 Spring 3 MVC 中,我有一个称为 SettingsController 的 Controller ,它具有用于显示用户列表的 displayUsers()、saveUser() 和 de
我正在创建一个使用语法的程序,并查看该语法是否为 LL (1)。我想使用模块Set,但是我不知道如何进行,当然set的元素的类型是char,你能帮忙吗? 最佳答案 此答案假设您已经知道如何确定语法是否
好的,所以我重新整理了这篇文章,使其更容易理解(对所有的 Pastebin 感到抱歉,但堆栈溢出在代码格式化方面很愚蠢) 请注意,我不打算存储如下所述的大量数据。我使用我所说的数量的主要原因是为了尽可
我有一个密码,我保存在 Settings.settings 文件中并且我希望该部分被加密。 This是我得到的提示,但我真的不知道如何应用它。 谁能给我一个关于如何加密这样的密码的想法? 最佳答案 您
我在网上搜索并找到了如何在设置中添加特定的自定义数据类型。 我自己插入数据,而不是在程序运行时通过代码插入数据。我的问题是如何将自定义数据类型添加到设计器中的组合框。现在我想通了,需要建议,如何添加这
我一直在尝试将自定义类的自定义集合添加到我的 winforms 项目的应用程序设置中,我觉得我已经尝试了六种不同的方法,包括 this way , this way , this way , 和 th
在 Visual Studio 2008 中调试我的项目时,我的 Settings.settings 文件在构建之间不断重置。有没有办法防止这种情况发生? 谢谢。 最佳答案 好的,我找到了我真正想要的
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,以便堆栈溢出为 on-topic。 4年前关闭。 Improve this
Tôi là một lập trình viên xuất sắc, rất giỏi!