下面的内容是对java中的集合类进行的总结,过段时间会分享java的网路编程,多线程等内容,欢迎批评指正。
1.java中的集合是用来存放对象的,即集合是对象的集合,对象是集合的元素,java api集合类位于java.util包中。
2.常用集合类:
collection接口,list接口, set接口,map接口。接口类结合泛型的使用
3.集合和数组的区别在于集合的长度是动态扩充的,数组中可以存放基本数据类型和引用数据类型,集合中只能存放引用数据类型。
4.java中的集合层次关系
接口:
iterator
|-collection
| |-lis
| | |-arraylist
| | |-linkedlist
| | |-vector
| | |-stackt
| |-set
| |-hashset
| |-treeset
|-listiterator
map
|-hashmap
|-hashtable
|-treemap
collection接口:
1.一个collection对象中可以放不同类型的数据,是set接口和list接口的父类,元素是否有序是否允许重复取决于具体的实现
2.set 为集合,元素无序且不允许重复,list 元素有序,允许重复。
3.collection中的常用方法如下:
添加元素:add(element : object): boolean
移除元素:remove(element : object): boolean
元素个数:size () : int
判断是否为空:isempty() : boolean
判断是否存在该元素:contains(element : objects) : boolean
迭代器:iterator() : iterator
产生一个包含所有元素的数组:object[] toarray();
list接口
添加元素: add(index : int. element : object)
移除元素:remove(index : int) : object
获取元素:get(index : int)
设置元素:set(index : int , element:objects);
获取元素的索引: indexof(element : object) : int
迭代器: listiterator() : listiterator
iterator 接口:
iterator称为迭代器,便于实现对容器元素的遍历,所有实现了接口collection的集合类都有iterator()方法,返回一个实现了iterator接口的对象,iterator在遍历中只能单向进行,iterator接口是为遍历设计的可以取出和删除集合中的元素,但不可以删除其中的元素
iterator中的主要方法:
object next() 指向集合中的下一个元素
boolean hasnext() 判断是否还有下一个元素
void remove() 移除集合中的元素,执行next() 后只能执行一次remove();
collections 类:
collections 类是类似于arrays类的工具类,它提供一些static静态方法供集合类使用或用来操作集合类
map接口:
map内存储的是以键/值对这样成对出现的对象组,通过“键”对象,来查找“值”对象,map中的“键”是唯一的,key对象和value对象关联在一起
map接口中的常用方法:
object put(object key, object value) 添加键值对
object get(object key) 获取键对应的值
set keyset() 返回此映射中包含键的set视图
hashmap与hashtable的比较:
hashtable是线程安全的,也就是说是线程同步的,hashmap是线程不安全的
hashmap允许将一个null作为一个entry的key或者value 二hashtable不允许
set内中存放的元素师不允许重复的,是无序的,list中的元素是有序的是允许重复的
map的应用主要是运用键/值对进行快速查询
arraylist和linkedlist 之间的区别在于随机查询的性能上arraylist的性能要好,但linkedlist对中间元素的删除和添加要好
hashset和treeset的主要区别在于集合内的元素是否排序
泛型的作用是对集合中的类型进行限制,避免去元素时进行强制转换
hashmap与set的结合使用