1.数组和集合

数组是用来存储相同数据类型(基本类型,引用类型)的一组数据。

集合不能存储基本类型的数据,只能存储对象。

数组和集合可以通过toArray()、Arrays.asList()相互转换

2.Collection接口:表示集合(有两个重要的子接口List,Set)

         遍历Collection的每一个元素,用到Iterator接口(有hasNext()、next()、remove()方法)

   Collections:集合类    封装了一些操作方法

3.

集合(Set、List、Map)

Set接口(add()、get()、contains()、iterator())

都是线程不安全的,解决办法:Set set=Collections.synchronizedSet(new HashSet());

java.util.concurrent里有线程安全的方法,如copyAndWriterArrayList()

HashSet(哈希表来保证元素的唯一性)等值查询效率高------>无序、不重复

Treeset(红黑树算法) 范围查询效率高, 通过实现Comparable接口,重写compareTo()方法实现自然排序------>无序、不重复

                                     通过new Comparator对象,重写compare()方法实现定制排序

LInkedHashSet是HashSet的子类,(LinkedHashSet有链表算法)------>有序、不重复

List(add()、get()、contains()、iterator())

ArrayList:底层是变长数组(查询快)

LinkedList:底层是链表(随机插入、删除快)

Map (put()、get()、containsKey())

Map map=Collections.synchronizedMap(new HashMap());

HahMap:key和value都允许为null

TreeMap:key不可为null,value可为null

HashTable:key和value都不允许为null,线程安全的(所有方法被synchronized修饰)

LinkedHashMap:HashMap的子类

集合(Set、List、Map)

4.Set、List集合可以相互转换

           Set set=new HashSet(list);

           List list=new ArrayList(set);

可以将Map间接转换为Set、List

           Set set=map.keySet();

            List list=map.values();

 

 

相关文章: