集合类

来源:互联网 发布:许晴 任盈盈 知乎 编辑:程序博客网 时间:2024/06/08 06:28
     Collections是专门操作集合类的工具类,Arrays是专门操作数组的工具类。List(列表)集合:是线性的集合,放置的元素的顺序就是它存放元素的顺序,可以根据下标取操作元素。ArrayList集合底层仍然用的是数组,ArrayList集合适合于在进行大量查询动作的时候,而LinkedList集合底层使用的是双向链表,链表结构在往中间添加或删除元素时,是不会影响到后面的其他元素的,LinkedList集合适合于大量添加删除动作的时候。Vector集合也属于List分支下面的集合类,把它称为向量类,它在底层也是使用的数组。Vector与ArrayList的区别是:Vector的线程是安全的,而ArrayList的线程是不安全的。Map(映射)集合中的元素以键值对的形式进行存放,且键不能重复,如果键重复了相当于在修改这个键值对,HashMap一般作为容器装数据,Properties可以直接操作文件。Hashtable的键和值必须为非null对象,HashMap的键和值可以为null,键只能有一个为null,Hashtable线程是安全的,HashMap线程不是安全的。HashMap键和值都可以是任意对象类型,HashMap集合通过键获取值,如果键不存在,返回null,根据键进行删除,如果键不存在,不会报错,只是不做任何删除动作而已。Map集合无法直接遍历键值对,只能单独遍历键或单独遍历值。set集合是无序的,它没有下标,也不能存放重复的元素。HashSet是通过判断两个元素的equals方法和hashcode方法,判断元素是否重复;equals返回的值要和hashcode返回的值保持一致,equals方法返回true的,hashcode也应该返回true,当重写了equals方法,也要重写hashcode方法,set集合的遍历只能通过使用迭代器或foreach,因为它里面的元素没有下标,set集合没有获取某个下标指定元素的方法,只能使用遍历的方式依次访问所有的元素,也没有修改某个下标指定元素的方法,只能根据元素进行删除,不能根据下表删除。
原创粉丝点击