如何在Java中从列表中获取特定的列列表而无需循环

如何在Java中从列表中获取特定的列列表而无需循环,java,Java,我有一个从数据库中检索的列表,我想为其获取特定列的所有数据 List<Contact> contacts = service.getContacts(); 如何从检索到的联系人列表中获取账号列表而不进行循环 提前感谢。你基本上无法做到这一点,除非进行某种迭代。但是,流可以很容易地做到这一点: List<String> accNumbers = contacts.stream() .map(c ->

我有一个从数据库中检索的列表,我想为其获取特定列的所有数据

 List<Contact> contacts = service.getContacts();
如何从检索到的联系人列表中获取账号列表而不进行循环

提前感谢。

你基本上无法做到这一点,除非进行某种迭代。但是,流可以很容易地做到这一点:

List<String> accNumbers = contacts.stream()
                                  .map(c -> c.getAccNumber())
                                  .collect(Collectors.toList());
List accNumbers=contacts.stream()
.map(c->c.getAccNumber())
.collect(Collectors.toList());

流仍然在后台进行迭代,但至少它隐藏了使用显式循环的一些繁琐之处。

没有循环是无法做到这一点的。一个可能的解决方案是根据查询本身的需要过滤结果,但数据库也将使用循环,因此您有点卡住了。您可以通过更新数据库查询来实现这一点,只选择columnStreams在hoodUm下使用循环…我的回答清楚地表明,没有迭代就无法做到这一点。我将在我的回答中添加一个声明,即streams在引擎盖下循环。
List<String> accNumbers = contacts.stream()
                                  .map(c -> c.getAccNumber())
                                  .collect(Collectors.toList());