JAVA中的集合

JAVA集合

Java的集合类主要由两个接口派生:Collection和Map,二者各自有多个实现类。

JAVA中的集合

JAVA中的集合

Collection接口是List、Set、Queue接口的父接口,该接口的方法适用于它的子接口。

Collection的接口:

void clear() : 清除集合中的所有元素,将集合的长度变为0。

boolean contains(Object o) :查找集合中是否包含指定元素。

boolean containsAll(Collection c) :判断集合中是否包含集合c中所有的元素。

boolean isEmpty() :判断集合是否为空。

Iterator iterator() :返回一个Iterator对象,用于遍历集合中的元素。

boolean remove(Object o) :删除指定元素,若多个只删除第一个。如果删除返回true。

boolean removeAll(Collection c) :删除集合c中所有的元素。如果删除返回true。

boolean retainAll(Collection c) :从集合中删除集合c中不包含的元素,相当于两个集合的交集。如果集合被改变返回true。

int size() :返回集合的元素个数。

Object[] toArray() :把集合转换成一个数组,所有的集合元素变成对应的数组元素。

 

List下的ArrayList和Vector:

格式: List<String> list1 = null;

list1 = new ArrayList<String>();或 list1 = new Vector<String>();

二者的使用方法并不存在大的区别,只是一个快(非线程安全)一个慢(线程安全).

ArrayList  是一个对象,功能相当于一个灵活的数组,可以随意的删除,增加元素,

                   例如 4,5,6

                   把5删除之后就变成了 4,6

                   向list中加入对象参数:add()

                   在索引参数中移除对象:remove()

                   移除该对象:remove()

                   如果和对象参数匹配返回“true”:contains()

                   如果list中没有元素返回"true":isEmpty()

                   返回对象参数的索引或-1:indexOf()

                   返回list中元素的个数:size()

                   返回当前索引参数的对象:get()

 

Set:一个不能存放重复元素的集合,但是可以排序

                   分为: 散列存放:HashSet  

                               有序存放:TreeSet     自动排序

格式: Set<String> set1 = null;

set1 = new TreeSet<String>();

或 set1 = new HashSet<String>():

iterator :迭代器

可以用于ArrayList、set、map。

iterator<String> iter = set1.iterator();

                   while(iter.hasNext()) {

                   System.out.println(iter.next());

}

 

Map接口的方法:

void clear() :删除Map中所有key-value对。

boolean containsKey(Object key) :查询Map中是否包含指定的key。

boolean containsValue(Object value) :查询Map中是否包含一个或多个value。

Set entrySet() :返回Map中包含的key-value对组成的Set集合。

Object get(Object key) :返回指定key对应的value;如果此Map中不包含该key,则返回null。

boolean isEmpty() :判断Map是否为空。

Set keySet() :返回该Map中所有key组成的Set集合。

Object put(Object key,Object value) :
            添加一个key-value对,如果当前Map中已有一个与该key相等的
            key-value对,则新的key-value对会覆盖原来的key-value对。

void putAll(Map m) :将指定Map中的key-value对复制到本Map中。

Object remove(Object key) :
            删除指定key所对应的key-value对,返回被删除key所关联的value,如果该
            key不存在,则返回null。

boolean remove(Object key,Object value) :删除指定key、value对应的key-value对。

int size() :返回Map中的key-value对的个数。

Collection values() :返回该Map中所有value组成的Collection.

 

Map:与python中的字典类似

一个key,一个value

HashMap和Hashtable都是Map接口的典型实现类。

区别:

                  Hashtable是一个线程安全的Map实现,但HashMap是线程不安全的实现,所以HashMap比Hashtable的性能高一点,但如果有多个线程访问同一个Map对象时,使用Hashtable实现类会更好。

                  Hashtable不允许使用null作为key和value,如果试图把null值放进Hashtable中,将会引发NullPointerException异常,但HashMap可以使用null作为key或value。

格式: map<String,String> m = new HashMap<String,String>();

 

方法:

                  m.put(key,value);   添加元素

                  m.keySet();  获得map中的所有key

                  m.containsKey(a);  查找map中的key是否含有元素a