JAVA集合与泛型

集合:集合是java中提供的一种容器,可以用来存储多个数据。
那么它和数组有什么不同呢?

数组的长度是固定的,集合的长度是可变的。
数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象,而且对象的类型可以不一致。
所有的集合框架都包含如下内容:

接口:是代表集合的抽象数据类型,例如:Collection、List、Set、Map等。之所以定义多个接口,是为了以不同的方式操作集合对象。

实现(类):是集合接口的具体实现,从本质上讲,它们是可重复使用的数据结构,例如:ArrayList,LinkedList,HashSet,HashMap.

算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如搜索和排序,这些算法被称为多态,呢是因为相同的方法可以在相似的接口上有着不同的实现,


在上图中,实线边框的是实现类,虚线边框的是抽象类,点线边框的是接口。加粗的是比较常用的实现类。

从上图的集合框架,我们可以看到,java的集合框架主要包含两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键值对映射。Collection接口又有三种子类型,List,Set和Queue,再下面是一些抽象类,然后是具体实现类,常用的有ArrayList,LinkedList,HashSet,LinkedHashSet等等。

Collection:单列集合,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set,其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。
Collection是所有单列集合的父接口。因此在Collection中定义了单列集合的一些方法

public boolean add(E e):把给定的对象添加到当前集合中。
public void clear():清空集合中所有的元素
public boolean remove(E e):把给定的对象在当前集合中删除。
public boolean contains(E e): 判断当前集合中是否包含给定的对象
public boolean isEmpty(): 判断当前集合是否为空
public int size(): 返回集合中元素的个

定义和使用含有泛型的类
定义 格式:

修饰符 class 类名<代表泛型的变量> { }

例如, API中的ArrayList集合:

class ArrayList {

​ public boolean add(E e){

​ // 代码

​ }

​ public E get(int index){

​ }

}

使用泛型:即什么时候确定泛型

例如, ArrayList list = new ArrayList();

此时 变量E的值就是String类型,那么我们的类型就可以理解为:

class ArrayList{

​ public boolean add(String e){}

​ public String get(int index){}

}

通过使用泛型我们就不用为每一种类型的数据写一个方法了。

泛型通配符
当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示,但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用

例如你现在有个需求: 方法接受一个集合数据,然后要遍历集合并且把集合中的元素打印。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值