Collection接口
是基本的集合接口,一个collection代表一组object,是单个集合保存的最大父接口
Add(E e)向集合中添加数据
AddAll()向集合中添加一组数据
Clear()清空集合数据
Contains()查找数据是否存在
Remove()删除数据
Size()取得集合长度
toArray()把集合变为对象数组返回
Collection下的借口有两个为list和set
List接口下的方法get(int index)根据索引取得保存数据
Set(int index,E Element)修改数据
list下的常用子类Arraylist ,vector,linkedlist
Arraylist :list接口的大小可变数组的实现
Vector :实现了一个动态数组,与Arraylist类似不同的是vector是同步访问的,包含了很多传统的方法,这些方法不属于集合框架,
四种构造方法
Vector()默认为10
Vector(int size)指定大小
Vector(int size,int incr)创建指定大小,并用增量incr指定,增量表示每次增加的元素个数
Vector(collection c)创建一个包含集合c元素的向量
Set集合Set接口与List接口最大的不同在于Set接口中的内容是不允许重复的
Set子接口中有两个常用子类:HashSet(无序存储)、TreeSet(有序存储)
2.TreeSet排序
利用TreeSet进行对象数组的排序,对象所在的类要实现Comparable接口,并且覆写compareTo()方法。如果使用Comparable接口进行大小关系匹配,所有属性必须全部进行比较操作。
3.使用HashSet
HashSet判断重复元素的方式依靠的是Object类中的两个方法:
(1)hash码:public native int hashCode();
(2)对象比较:public boolean equals(Object obj);
在Java中进行对象比较的操作有两步:第一步要通过一个对象的唯一编码找到一个对象的信息,第二步当编码匹配之后再调用equals()方法进行内容的比较。
如:使用hashCode()与equals()消除重复
泛型:是一种未知的数据类型
也可以看做一个变量,接受数据类型
E e:Elecemt元素
T t:type 类型
泛型类
Public class Arraylist<E>{
//所有使用数据类型的地方使用E来代替
}
创建集合对象的时候确定泛型类型
Arraylist<string> = new Arraylist();
泛型方法,泛型类,泛型接口
Java的数据结构
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素的操作进行数据插入删除 操作的一端称为栈顶,另一端为栈底,不含任何元素的栈为空栈
先进后出,
队列
只允许在一端进行插入,另一端进行删除
插入端为队尾,删除端为队首
先进先出
链表:链表是一种物理存储单元上非连续,非顺序的存储结构,数据匀速的逻辑顺序是通过链表的指针实现的分为数据域和指针域
红黑树
是一种自平衡二叉查找树
Map集合
在显示生活中有这样一种集合他们有个一一对应的关系,这种一一对应的关系叫做映射
Collection中的集合,元素时孤立存在的,相机和中存储元素采用一个个元素的方式存储
Map集合元素是成对出现的。每个元素元素由键和值两部分组成,通过键可以找到对应的值
Collection的集合称为单列集合,Map中的集合称为称为双列集合
Map集合不能包含重复的键,值可以宠物,每个键只能对应一个值
Map接口的常用子类
Hashmap<K,V>:存储数据采用哈希表结构,元素的存取顺序不能保证一致,元素的存取顺序不能得到保证之一,由于要保证键的唯一,不重复,需要重写键的hashcode()方法,equals()方法
linkedHasp<K,V>haspMap有个子类linkedHashMap,存储采用哈希表+链表结构通过链表结构可以保证元素的存取顺序一致,通过哈希表可以保证键的唯一,不重复,需要重写hashcode()和equals()方法
map接口中的方法
put(K key,v Value)把指定的键和指定的值添加到Map集合
remove(ovject key) 把指定的键所对应的键值对元素,在map集合中删除,返回被删除元素的值
get(object key)根据指定的键,在map集合中获取对应的值
containkey(object key)判断集合中是否包含指定的键
keyset()获取map集合中的所有键,存储到set集合中
Set<Map.Entry<K,V>> entrySet()`: 获取到Map集合中所有的键值对对象的集合(Set集合)。使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中;
>
> 若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的值,替换成指定的新值。