Java笔记(十一)包装类,集合,泛型

包装类 - 把基本数据类型封装

byte	-	Byte
short	-	Short
int		-	Integer
long	-	Long
double	-	Double
float	-	Float
boolean	-	Boolean
char	-	Charcter
Integer包装类:

1.创建
a.直接赋值
Integr i = 20;
b.构造方法创建
new Integer(“字符串”) --> String 转换成Integer
new Integer(int i)

2.装箱和拆箱
装箱: int 转换成 Integer
Integer.valueOf()
拆箱: Integer 转换成 int
i.intValue()

3.常用API
字符串和Integer之间的转化
int -> String
String中的 valueOf(int i)

Integer -> String
i.toString()

String -> Integer
Integer.valueOf()

String -> int
Integer.parseInt()

4.特征:
a.Integer是final修饰的类,不可被继承的类
b.基本数据类型和包装类是可以无缝切换(使用上没有任何区别)

5.常量池
a.在包装类中只有Integer有常量池
b.常量池的范围: byte的范围
-128 ~ 127
c.超过取值范围之外的,都是new对象


集合

1.分类
Collection - 接口(包含很多子接口/实现类)
子接口:
| - List
| - Set
| - Queue

Map - 接口(包含很多子接口/实现类)
Collection接口

1.创建
Collection col = new ArrayList() --> 向上造型
2.常用API
add() - 添加
contain() - 是否包含
isEmpty() - 是否为空
size() - 长度
remove() - 删除
clear() - 清空
3.集合和集合之间的方法
addAll()
removeAll()
retainAll()
containsAll()
4.集合和数组之间的转换
toArray() - 集合转换成数组
无参的,返回值类型永远只能是Object[],和泛型无关

toArray(<T> a) - 集合转换成数组
	有参的,给的是一个具体的类型
	例如:  需要一个String类型
	  toArray(new String[0])
	new String[0],只是用来确定类型,数组的长度无关

asList(<T> a) - 数组转换成集合
	注意: 获取到的ArrayList集合,是作为Arrays中的的内部类出现的
	所以不是真正意义上的ArrayList

	不能做改变数组长度的操作 - add()

Iterable接口

1.API 只有一个
iterator - 迭代器
2.作用:遍历/迭代数组(集合)
前提:必须继承Iterable接口的,也就是必须是可迭代的
3.iterator - 迭代器
a.运行原理:获得迭代器,是有有游标的,并且游标在第一个元素之前
b.三个方法:
hasNext() - 询问有没有下一个元素
next() - 获取下一个元素
remove() - 删除元素
注意:remove()不能使用集合中的remove(),因为会出现并发异常
ConcurrentModificationException
只能使用迭代器自身的remove()

c.简易版迭代器 - foreach
	结构:
		for(对象 : 集合){
			要输出的内容
		}

		:前 -> 每一次迭代出来的临时变量
		:后 -> 要迭代的集合/数组

	缺点:只能获取,不能删除

泛型:

只要是类型的地方可以规定成泛型 <泛型/类型>
1.特点
a.只要是可以放类型的地方都可以使用泛型取代(例如:返回值类型/方法参数/类/接口)
b.规定了泛型,就只是定义好了类型,规定程序员的,并且只在编译时有效
c.运行时,还是支持Object类型

2.使用步骤:
a.在类/接口上定义/加上泛型
ps: Collection col = new ArrayList<~>();
b.在这个类的方法中,具体类型就可以使用E来代替

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值