List, Map, Set都只是接口而已,里面数据具体的存放方式可能会依具体的类不同而显得完全不一样的。比如我写的一个List其存储方式可以与ArrayList完全相反。
但是通常而言,我们说List,其实是在说ArrayList/LinkedList,Map就是HashMap/TreeMap,下面我所说的,也是基于这几个类的
(理论上)List是有序的,这个从其接口get(int), indexOf(Object)这些方法上就可以看出来
List的顺序就是你放他们的顺序,Set基本上就是一个List,唯一的区别就是同一个东西,List里面你可以多次重复放进去,而Set里面只能放一次,也就是第一次。
Map 是一个Key/Value对的集合,他们之间的关系就好像y=f(x); x是key, y是value, 一个key只能对应一个value, 因此通常是根据Key来决定存放Value(或者Key/Value对)的位置的。正是基于这个原因,Map的存放顺序与你放他们的顺序无关。而和他们的散列码hashCode有关,用哪个你可以根据自己的需要选择!
浙公网安备 33010602011771号