java-容器

来源:互联网 发布:java泛型坑 编辑:程序博客网 时间:2024/05/29 04:49

将同类的引用放置在同一数据容器中

Java中提供了丰富的数据容器以满足程序员多样化的需求

数据容器主要分为了两类:

Collection: 存放独立元素的序列。

Map:存放key-value型的元素对。

JAVA的容器---List,Map,Set 
Collection 
├List 
│├LinkedList 
│├ArrayList 
│└Vector 
│ └Stack 
└Set 
Map 
├Hashtable 
├HashMap 
└WeakHashMap

LinkedList :其数据结构采用的是链表,此种结构的优势是删除和添加的效率很高,但随机访问元素时效率较ArrayList类低。

ArrayList:其数据结构采用的是线性表,此种结构的优势是访问和查询十分方便,但添加和删除的时候效率很低。

HashSet: Set类不允许其中存在重复的元素(集),无法添加一个重复的元素(Set中已经存在)。

HashMap: 提供了key-value的键值对数据存储机制,可以十分方便的通过键值查找相应的元素,而且通过Hash散列机制,查找十分的方便。


容器与数组的关系 
之所以需要容器: 
1、数组的长度难以扩充 
2、数组中数据的类型必须相同 
容器与数组的区别与联系: 
1、容器不是数组,不能通过下标的方式访问容器中的元素 
2、数组的所有功能通过Arraylist容器都可以实现,只是实现的方式不同 
3、如果非要将容器当做一个数组来使用,通过toArraylist方法返回的就是一个数组

容器常用的几个方法

boolean add(Object obj):向容器中添加指定的元素Iterator iterator():返回能够遍历当前集合中所有元素的迭代器Object[] toArray():返回包含此容器中所有元素的数组。Object get(int index):获取下标为index的那个元素Object remove(int index):删除下标为index的那个元素Object set(int index,Object element):将下标为index的那个元素置为elementObject add(int index,Object element):在下标为index的位置添加一个对象elementObject put(Object key,Object value):向容器中添加指定的元素Object get(Object key):获取关键字为key的那个对象int size():返回容器中的元素数
容器分为Set集、List列表、Map映射 
Set集合:由于内部存储结构的特点,Set集合中不区分元素的顺序,不允许出现重复的元素,TreeSet容器特殊,元素放进去的时候自然而然就有顺序了,Set容器可以与数学中的集合相对应:相同的元素不会被加入 
List列表:由于内部存储结构的特点,List集合中区分元素的顺序,且允许包含重复的元素。List集合中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素—有序,可以重复 
Map映射:由于内部存储结构的特点,映射中不能包含重复的键值,每个键最多只能映射一个值,否则会出现覆盖的情况(后面的value值会将前面的value值覆盖掉),Map是一种把键对象和值对象进行映射的集合,即Map容器中既要存放数据本身,也要存放关键字:相同的元素会被覆盖 
注意:对于Set和Map来说,元素放进去之后是没有顺序的,键值对排序是根据key的值进行排序的