Java 使用param映射来自SQL查询的结果
我想在Java代码中实现这个ruby逻辑:Java 使用param映射来自SQL查询的结果,java,Java,我想在Java代码中实现这个ruby逻辑: .take(10).map(&:serial_number) 我有一个SQL查询的结果,它是一个带有对象的列表:List: 如何获取前10个列表元素并通过字段serial\u number将它们分组?您可以在该列表的stream()中使用map()方法并最终收集它。对于限制,有一个limit()方法。例如: public class Example { static class Person { private Str
.take(10).map(&:serial_number)
我有一个SQL查询的结果,它是一个带有对象的列表:List
:
如何获取前10个列表元素并通过字段serial\u number
将它们分组?您可以在该列表的stream()
中使用map()
方法并最终收集它。对于限制,有一个limit()
方法。例如:
public class Example {
static class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static void main(String[] args) {
Person p1 = new Person("John");
Person p2 = new Person("Mike");
Person p3 = new Person("Peter");
List<Person> persons = Arrays.asList(p1, p2, p3);
List<String> namesOfPersons = persons.stream().map(Person::getName).limit(2).collect(Collectors.toList());
namesOfPersons.forEach(System.out::println);
}
}
这能满足你的期望吗
Map<String, List<Connections>> map =
connectionsList.stream()
.limit(10)
.collect(Collectors.groupingBy(Connections::getSerialNumber));
地图=
connectionsList.stream()
.限额(10)
.collect(收集器.groupingBy(Connections::getSerialNumber));
它获取列表的前10个元素并创建一个映射
每个键都是不同的序列号,每个值都是具有该序列号的连接列表。假设
列表
对象的名称是连接
,并且序列号
的getter函数是getSerialNumber
,则可以执行以下操作:
Map<String, List<Connections>> groupedConnections = connections.stream().limit(10).collect(Collectors.groupingBy(Connections::getSerialNumber));
Map groupedConnections=connections.stream().limit(10).collect(Collectors.groupingBy(connections::getSerialNumber));
这将产生一个
映射
(如果我没有记错的话,它类似于Ruby中的散列
),其中包含作为键的序列号
,该序列号被分组为每个对应的序列号
的连接列表
,作为值。只有前10个元素将从connections
列表中选择。为什么不在SQL中通过GROUP BY进行分组?在按序列号
分组后,能否显示connections
类的字段中这10个元素的预期输出?有什么好办法吗?类是连接还是连接?@Bentaye类是连接
并且是all@EpicPandaForce它已经被添加到SQL查询中,但是我想把它也添加到Java代码中。
Map<String, List<Connections>> groupedConnections = connections.stream().limit(10).collect(Collectors.groupingBy(Connections::getSerialNumber));