获取ID变量中具有特定值的对象

时间:2017-06-14 21:34:43

标签: java

我正在阅读CSV文件并根据每行的值创建对象。我无法将每个对象命名为独特的东西,所以我这样做:

new User(x, y, z);

但是我怎样才能找到新创建的对象?有没有办法循环遍历特定类的所有对象(即用户)?或者至少根据ID找到一个? (例如用户(1))

在SQL中我可以简单地

select * from X where ID=1 

但是在根据从文本文件解析的数据创建多个无名对象后,如何在Java中执行此操作?

2 个答案:

答案 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>