我有以下要求,我想使用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())));