List、Set和Map

来源:互联网 发布:淘宝客pid 编辑:程序博客网 时间:2024/04/30 11:20
最大的不同就是List是可以重复的。而Set是不能重复的.
  List是有序的,Set是无序的(所以迭代查询Set时,元素返回没有特定顺序)
  List适合插入删除,Set适合随机存储
  其实Set的实现原理是基于Map的,因为Map中的Key也是不能重复的
  总结:List有顺序有重复没有排序,set无重复有排序,map的key也和set一样。如果想跟List一样
  需要有插入元素的顺序,请使用LinkedHashSet或者LinkedHashMap。
 我思所得:collection是个容器接口,list、set接口实现了collection接口;
  list主要有ArrayList和LinkedList两个实现类
     ArrayList --> 优点:查询速度快,但插入删除效率低(它底层是数组)
     LinkedList --> 优点:插入删除效率高,但随机访问速度慢
  set主要有HashSet和TreeSet两个实现类
     HashSet  --> 优点:能够快速定位集合中的元素,基于hash算法,性能优于TreeSet,
                  所以通常使用HashSet。(HashSet的底层就是HashMap实现的)
     TreeSet --> 优点:遍历的时候可以按照字典顺序获得对象(实现了java.util.SortedSet接口)
                       通常需要对元素进行排序时才使用。
  map主要有HashMap和TreeMap两个实现类
     HashMap --> 优点:在添加。删除和定位映射关系上性能较好。允许空值和空键
        LinkedHashMap --> 当想要迭代时按照插入的顺序排列,那就用它,它是HashMap的子类
     TreeMap --> 优点:映射关系是根据键对象按一定信息排列的(也就是说映射关系具有一定的顺序)。
                       不允许键对象为空。
0 0
原创粉丝点击