map — transform each item. flat_map — transform and flatten.
map:
flat_map:
1let v = vec![1, 2, 3];23// map: returns nested4let nested: Vec<Vec<i32>> = v.iter().map(|x| vec![*x, *x * 2]).collect();5// [[1,2], [2,4], [3,6]]67// flat_map: returns flat8let flat: Vec<i32> = v.iter().flat_map(|x| vec![*x, *x * 2]).collect();9// [1, 2, 2, 4, 3, 6]
Key: map for one-to-one, flat_map for one-to-many.