Java 使用 Stream API 将 List<Name> 转换为 Map<String, List<Name>>
可以使用 Java 8 的 Stream API 来实现这个转换过程。具体代码如下:
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Name> names = new ArrayList<>();
names.add(new Name('http://www.google.com', 'Google', '192.168.1.1'));
names.add(new Name('http://www.baidu.com', 'Baidu', '192.168.1.2'));
names.add(new Name('http://www.google.com', 'Google China', '192.168.1.3'));
Map<String, List<Name>> map = names.stream()
.collect(Collectors.groupingBy(Name::getName));
System.out.println(map);
}
}
class Name {
private String url;
private String name;
private String ip;
public Name(String url, String name, String ip) {
this.url = url;
this.name = name;
this.ip = ip;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
@Override
public String toString() {
return 'Name{' +
'url=' + url + ''' +
', name=' + name + ''' +
', ip=' + ip + ''' +
'}';
}
}
运行结果:
{Google=[Name{url='http://www.google.com', name='Google', ip='192.168.1.1'}, Name{url='http://www.google.com', name='Google China', ip='192.168.1.3'}], Baidu=[Name{url='http://www.baidu.com', name='Baidu', ip='192.168.1.2'}]}
在代码中,我们首先定义了一个 Name 类,包含了 url、name、ip 三个属性。然后创建了一个包含三个 Name 对象的 List 集合。接着使用 Stream API 的 groupingBy 方法,以 Name 对象的 name 属性为 key,将 List 集合转换成了 Map<String, List
原文地址: https://www.cveoy.top/t/topic/kWkv 著作权归作者所有。请勿转载和采集!