【Java基础学习笔记】14、集合与泛型


集合

集合相当于是个容器,主要负责存储任意数量的数据。
分类:
 Collection(接口) - 有很多子接口/实现类
  | - List(I)
  | - Set(I)
  | - Queue(I)
 Map(接口)

Collection接口

1、创建: 是一个接口,不能new自己,只能new接口的实现类
2、常用API
 1)普通常用
  add() - 添加
  remove() -删除
  clear() - 清空
  isEmpty() - 询问是否为空
  contains() - 询问是否包含
  size() - 获得集合的长度
 2)集合与集合之间的方法 c1 和 c2两个集合
  addAll() - 将c2中所有的元素添加到c1中
  removeAll() - 将c2中出现过的元素从c1中删除
  containsAll() - 问c2中是否包含c1中的所有元素
 3)集合与数组之间的方法
  集合 -> 数组
  toArray() - 得到的返回值永远只能是Object类型
  toArray(T<> []) - T表示数组需要的类型,并且跟数组的长度无关
 数组 -> 集合
  Arrays.asList()
  得到的是一个集合,但是使用上得到ArrayList是一个Array类中的内部类
  所以不能使用让给长度会修改的方法,例如: add()。
3、注意:
 collection没有get(),想要获取元素,必须使用Iterator迭代器获取,使用迭代器的前提是这个接口必须是可迭代的。

Iterable接口

是一个超级接口
 1.此接口中只要一个方法 - iterator

 2.iterator 的返回值类型是 Iterator也是一个接口
  Iterator接口中有三个方法:
  next() - 移动到下一个
  hashNext() - 询问有没有下一个
  remove() - 删除元素
注意:如果迭代删除每一个元素,必须使用迭代器中的remove(),否则会出现异常。
异常:ConcurrentModificationException - 并发修改异常
解决: 不能调用集合中的remove(),只能使用迭代器中自己的remove()
remove() 删除的是迭代器中游标所在位置上的元素。

3.froEach - 简易版迭代器
 1)作用: 获得数组/集合中所有的元素
 2)结构:
  for(对象 : 集合){}
  :前 -> 每取出来的一个对象
   相当于迭代器中的 it.next()
  :后 -> 要遍历的集合
 使用简易版迭代器,不能删除元素。

泛型<E>

1、特点
 a.规定了泛型,就只支持定义好的类型参数,只是在编译时有效,只是用来规范程序员写法的。
 b.运行时状态下,是支持所有类型,支持Object。
 c.将类型作为参数使用,也就是说泛型可以放在所有存放类型的地方(方法参数/返回值类型/类)。

2、使用泛型的步骤
 1.在类中定义泛型的类型
  在类名后添加 <E> - 字母随意
 2.在类中的方法中,具体类型就可以使用E来代替

3、泛型的作用
 为了优化方法的重载

JavaBean规范:实体类的书写规范
 1、所有成员变量私有化,并且提供一对get()/set()
 2、定义无参构造方法
 3、重写toString()
 4、重写equals() 和 hashCode()
 5、所有基本数据类型建议使用包装类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值