Java集合框架的使用及理解

如果程序运行时并不确定要存储的对象个数时,则可以使用集合框架


Java集合框架是由很多的接口抽象类,实现类组成的,都位于Java 。util包下。

泛型:可以和集合进行组合,来给集合固定的类型使中有滚定的类型才可以存储,使其安全简单,消除代码中的强制转换。

如:List <Integer> input=new ArrayList<Integer>();//则规定了只能存储int类型的参数。


Collection接口(所有集合的根接口)中含有: 

List接口  和  Set接口,以及Queue接口,Queue接口不常用。

Collection中存储不唯一的,无序的对象,他不提供直接的实现,

它所代表的是一种规则,


Collection接口提供的方法:
boolean add(E e):向集合框架中存入一个对象,成功true
void clear():移除集合中的所有对象
boolean contains(Object o):判断集合中是否包含某个对象,包含返回true
booeanl isEmpty():判断集合中是否存在元素(是否为null),若不存在元素(若为null),则返回true
boolean remove(Object o):删除集合中某个对象,成功返回true
int size():获取集合长度


List中存储不唯一的,有序的对象,包含ArrayList和LinkedList类

List用某种特定的插入顺序来维护元素顺序,用户可以根据元素的整数索引

来访问元素(从0开始)

void add(E e,int index):向集合框架中指定位置存入一个对象
remove(int index):删除集合中某个位置的某个对象
remove(Object obj):删除集合中某个对象
get(int idnex):获取集合中某个位置的对象
List<T> subList(int s,int e):返回指定区间的某些对象
set(int index,Object obj):修改指定位置的元素

ArrayList实现类:实现List接口,是可变长度数组,以数组方式存储数据,

但是长度不固定,定义泛型集合:List<类型> haha=new ArrayList<类型>();


LinkedList实现类:实线List接口,是以链条形式存储数据,在删除和增加时效率高,

扩展了新的方法:

addFirst(Object):向集合中第一位增加元素
addLast(Object):向集合中最后一位增加元素
removeFirst():删除集合中第一位元素
removeLast():删除集合中最后一位元素
getFirst():获取集合中第一位元素
getLast():获取集合中最后一位元素


ArrayList和LinkedList有何异同?

ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构,

ArrayList可以随机定位访问,而LinkedList要一步一步的移动到节点处

对于增加和删除操作,LinkedList比较占优势,可以直接操作,

而ArrayList需要移动数据来填补被删除的对象的空间


Set中存储唯一的,无序的对象,  包含HashSet和TreeSet类

Set接口:存储唯一的,无序的元素,无索引,允许存在null值,但是只能存在一个
HashSet实现类:实现Set接口,底层是哈希码,默认排序方式是哈希码顺序
TreeSet实现类:实现Set接口,可以自定义排序,需要实现Comparable接口,重写compareTo(Object)方法,此方法返回值为0时,则代表两数相等,返回值为正整数时,则代表大于,返回值为负整数时,则代表小于


List和Set在Cllection之上追加了一些方法:

遍历集合方式:
1:普通for循环
for(int i=0;i<集合.size();i++){}
2:增强for循环
for(类型 变量名:集合){}
3:迭代器
Iterator<Penguin> it=集合.iterator();//将集合中的所有内容存入迭代器
while(it.hasNext()) {//hasNext()方法:判断迭代器中是否存在下一个元素
    it.next();//next():获取当前元素
}


Map接口:

存储一对键值对,key值对应value值,key值不允许重复(唯一)


void clear():清除集合中的数据
void put(Object key,Object value):向集合添加一个元素
void get(Object key):根据key值取value值
void remove(Object key):根据key值删除value值
Collection values():获取所有values值
Set keySet():获取所有的key值

Collection与Collections的区别:
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值