Мне нужно разделить строку на основе запятой и добавить ее к Map
одновременно в одну go. Я знаю, что могу собрать разделенный поток в список, а затем перебрать список для того же эффекта. Но мне нужно знать, можно ли это сделать.
Input
: List<String>
- (A, B) (A, C)
Output
: Map<String, List<String>>
- (A, (B, C))
Пример кода: (содержит ошибку)
public void edgeListRepresentation(ArrayList<String> edges){
Map<String, List<String>> edgeList = new HashMap<>();
edges.forEach(connection -> {
Stream.of(connection.split(","))
.map((arr) -> {
edgeList.computeIfAbsent(arr[0], val -> new ArrayList<String>()).add(arr[1]);
});
});
}
public static void main(String[] args) throws IOException {
EdgeList edgeList = new EdgeList();
edgeList.edgeListRepresentation(new ArrayList<String>(){
{
add("A, B");
add("A, C");
add("A, E");
add("B, C");
add("C, E");
add("C, D");
add("D, E");
}
});
}