我正在阅读CSV文件并根据每行的值创建对象。我无法将每个对象命名为独特的东西,所以我这样做:
new User(x, y, z);
但是我怎样才能找到新创建的对象?有没有办法循环遍历特定类的所有对象(即用户)?或者至少根据ID找到一个? (例如用户(1))
在SQL中我可以简单地
select * from X where ID=1
但是在根据从文本文件解析的数据创建多个无名对象后,如何在Java中执行此操作?
答案 0 :(得分:3)
或者至少根据ID找到一个?
您创建的User
标识符是什么?
因此,您应该将对象存储在Map
中,其中密钥为User
id,值为User
对象。
如果Integer
为id,则会显示:
Map<Integer, User> usersById = new HashMap<>();
for (...){
usersById.put(userId, new User(userId, x, y, z));
}
然后您可以通过以下方式检索用户:
User user = usersById.get(1);
答案 1 :(得分:0)
首先,将对象存储到列表中。
List<User> usersList = new ArrayList<>();
...
... // add each object to usersList
稍后,要模仿您的SQL
查询,您可以执行以下操作:
Optional<User> result = usersList.stream().filter(x -> x.getId() == 1).findFirst();
此解决方案假设您的id
课程中有一个User
字段,并且{@ 1}}有一个获取者。
读
- Optional<T>
。