java一个对象有urlnameip三个参数组成的一个listname把他转出mapstringlistnamename做key有一样的则添加在一个list里怎么写
可以使用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/dxq7 著作权归作者所有。请勿转载和采集!