集合框架和泛型

1.1认识集合

为什么使用集合:数组在处理问题时存在一些明显的缺陷,Java提供了比数组更灵活实用的集合框架,大大提高效率。

Java集合提供了一套性能优良,使用方便的接口和类,位于java.util包中。

集合类主要由Map接口和Collection接口派生而来,而Collection接口有两个常用的子接口,即List接口和Set接口。

1.2 List接口

Collection接口是最基本的接口集合,可以存储一组不唯一,无序的对象。

List可以存储一组不唯一,有序的对象。

List接口常用的实现类有ArrayList和LinkedList。

(1)ArrayList

ArrayList集合类存储的是一组长度可变的数组,在内存中分配一套连续的内存空间。ArrayList集合可以添加任何类型的数据,并且添加的数据都转化为Object类型。

遍历元素和随机访问元素的效率比较高

ArrayList常用的方法

方法名

说明

boolean add(Object o)

在列表的末尾顺序添加元素,起始索引位置从0开始

void add(int index,Object o)

在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间

int size()

返回列表中的元素个数

Object get(int index)

返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换

boolean contains(Object o)

判断列表中是否存在指定元素

boolean remove(Object o)

从列表中删除元素

Object remove(int index)

从列表中删除指定位置元素,起始索引位置从0开始

 

 

(2)LinkedList

存储的一组数据链,删除,插入元素比较方便。

LinkedList的常用方法

方法名

说明

void  addFirst(Object o)

在列表的首部添加元素

void  addLast(Object o)

在列表的末尾添加元素

Object  getFirst()

返回列表中的第一个元素

Object  getLast()

返回列表中的最后一个元素

Object  removeFirst()

删除并返回列表中的第一个元素

Object  removeLast()

删除并返回列表中的最后一个元素

 

1.3 Set接口

Set接口可以存储一组唯一,无序的对象。

HashSet:一般想删掉重复数据,可以把数据放在Hashset

                 集合内的元素是无序排列的。

                 HashSet类是非线程安全的。

                 允许集合元素值为null。

 

1.4  Iterator接口

Iterator接口表示对集合进行迭代的迭代器。Iterator 接口为集合而生,专门实现集合的遍历。此接口主要有如下两个方法:)
hasNext(): 判断是否存在下一个可访问的元素,如果仍有元素可以迭代,则返回true

next():返回要访问的下个元素。

 

使用Iterator接口遍历ArrayList集合。

实现步骤如下。

(1) 导入Iterator接口。

(2)使用集合的iterate()方法返回Iterator对象。

(3) while 循环遍历。

(4)使用Iterator的hasNext()方法判断是否存在下一个可访问的元素。

(5)使用Iterator的next()方法返回要访问的下一个元素。

 

1.5 Map接口

Map接口存储一组成对的键(key)——值(value)对象,提供key到value的映射。

Map接口的常用方法
 

方法名

说明

Object put(Object key, Object val)

以“键-值”对的方式进行存储

Object get(Object key)

根据键返回相关联的值,如果不存在指定的键,返回null

Object remove(Object key)

删除由指定的键映射的“键-值对”

int size()

返回元素个数

 

Set keySet()

返回键的集合

Collection values()

返回值的集合

boolean containsKey(Object key)

如果存在由指定的键映射的“键-值对”,返回true

 

1.6 Collections类

Java集合框架将针对不同数据结构算法的实现都保存在工具类中

Collections类定义了一系列用于操作集合的静态方法

Collections类常用方法

Collections和Collection不同,前者是集合的操作类,后者是集合接口

Collections提供的常用静态方法

sort():排序

binarySearch():查找

max()\min():查找最大\最小值

 

1.7 泛型

JDK5.0使用泛型改写了集合框架中的所有接口和类

将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性

语法:类1或者接口<类型实参>对象=new 类2<类型实参>();

泛型集合可以约束集合内的元素类型 典型泛型集合ArrayList<E>、HashMap<K,V> <E>、<K,V>表示该泛型集合中的元素类型 泛型集合中的数据不再转换为Object

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值