集合:一组对象的容器
集合框架:集合的类集

集合类也称做容器类,所有的集合类位于java.util包中,主要包括Colletion和Map接口。

Collection

    |---List元素是有序的,元素可以重复,因为该体系有索引

    |    |----ArrayList底层数据结构使用的是数组数据结构。特点:查询快增删慢

    |    |----LinkedList底层使用的是链表数据结构。特点:查询慢增删快

    |    |----Vector底层是数组数据结构,线程同步,被ArrayList取代了

    |---Set元素是无序的,元素不可以重复

    |    |----HashSet底层数据结构是哈希表

    |    |----TreeSet底层数据结构是二叉树

List特有方法:凡是可以操作角标的方法都是该体系特有的方法

插入add()方法、删除remove()方法、判断一个元素是不是其成员contains()方法、遍历iterator()方法

ArrayList

ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。

一.优点

1。支持自动改变大小的功能 2。可以灵活的插入元素 3。可以灵活的删除元素

二.局限性

跟一般的数组比起来,速度上差些

三.如何使用ArrayList

Add、AddRange、Remove、RemoveAt、RemoveRange、Insert、InsertRange
这几个方法比较类似
Add方法:用于添加一个元素到当前列表的末尾
AddRange方法:用于添加一批元素到当前列表的末尾
Remove方法:用于删除一个元素,通过元素本身的引用来删除
RemoveAt方法:用于删除一个元素,通过索引值来删除
RemoveRange:用于删除一批元素,通过指定开始的索引和删除的数量来删除
Insert:用于添加一个元素到指定位置,列表后面的元素依次往后移动
InsertRange:用于从指定位置开始添加一批元素,列表后面的元素依次往后移动
Clear方法:用于清除现有所有的元素
Contains方法:用来查找某个对象在不在列表之中
ToArray方法:这个方法把ArrayList的元素Copy到一个新的数组中。

例1

ArrayList List = new ArrayList();
for( int i=0;i<10;i++ ) //给数组增加10个Int元素
List.Add(i); //添加元素
//..程序做一些处理
List.RemoveAt(5);//将第6个元素移除

List.Insert(0,"aa");//将元素插入ArrayList的指定索引处

aList.RemoveRange(1,3);移除一定范围的元素,从索引为1的地方移除3个元素
for( int i=0;i<3;i++ ) //再增加3个元素
  List.Add(i+20);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的数组

ArrayList与数组转换
 例2:
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = (Int32[])List.ToArray(typeof(Int32));

例3:
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = new Int32[List.Count];
List.CopyTo(values);

去除ArrayList中重复的元素

LinkedList

1、获取链表的第一个和最后一个元素

2、获取链表元素  

3、从链表生成子表

4、添加元素:添加单个元素

add(element)

add(index,element)

addFirst()

addLast()

5、删除元素

getFirst()和getLast(),获取元素,但不删除

removeFirst()和removeLast()获取元素,同时删除

删掉所有元素:清空LinkedList

lList.clear();

6、删除列表的首位元素

7、查找元素位置

8、替换元素

9、确认链表是否存在特定元素

10、链表添加对象

11、根据链表元素生成对象数组

HashSet

HashSet 是如何保证元素唯一性的呢? 
是通过元素的两个方法,hashCode和equals来完成。 
如果元素的HashCode值相同,才会判断equals是否为true。
如果元素的HashCode值不同,不会调用equals。
TreeSet
可以对set集合中的元素进行排序
两种实现:
A:自然排序(元素具备比较性)
          TreeSet的无参构造,要求对象所属的类实现Comparable接口
B:比较器排序(集合具备比较性)
           TreeSet的带参构造,要求构造方法接手一个实现了Comparator接口
注意:如果同时有两种方案,以比较器为主。
A方法
 
B方法
 
 

 

posted on 2015-07-03 16:17  夏晴  阅读(324)  评论(0编辑  收藏  举报