Map:
map是一种经典的k-v格式存储结构,在使用过程中由于粗心导致了若干问题。
1. map的初始化不可以用key-value进行直接的初始化,安全的做法是Maps.newHashMap或new HashMap<>获得了目标map后,再对其put(key, value)。
2. Map和List不同点在于,List直接add就可以安全地增加新值,但Map直接put很容易覆盖原有值。在put前一定要get一下,检查map是否存在将要put的key。如果存在,其对应value将被覆盖。putAll与put相同,需要谨慎使用。
For:
在业务代码中经常出现,将某个collection用for循环取,将每个元素进行操作封装成model后,放到另一个collection中。
这里要注意model一定要在For循环内部new,保证每次循环操作的model都是相互独立的。否则每次循环操作的都是同一个引用,最后collection中全是同样的对象。