如何使用Java8将ArrayList转换为Map



我有以下要求,我想使用Java-8来满足所需的解决方案:

输入->

ArrayList<String> places = new ArrayList<String>(
Arrays.asList("Buenos Aires", "Córdoba", "La Plata", "Paris"));

输出->HashMap<String,List<String>> detailsMap=new HashMap<>();

{"Buenos Aires"=[ "Córdoba", "La Plata", "Paris"], "Córdoba"=["Buenos Aires", "La Plata", "Paris"],
"La Plata"=["Buenos Aires", "Córdoba", "Paris"], "Paris"=["Buenos Aires", "Córdoba", "La Plata"]}

如何使用Java-8实现这一点?

以下是使用流实现这一点的方法。

List<String> places =  Arrays.asList("Buenos Aires", "Córdoba", "La Plata", "Paris");
Map<String, List<String>> map = places.stream().collect(Collectors.toMap(Function.identity(), e-> places.stream().filter(k -> !e.equals(k)).collect(Collectors.toList())));

最新更新