第三堂课(集合框架:list优化,泛型,java的八大数据类型,装箱、拆箱,Vector和Arraylist的区别,堆栈)

	第三堂课(集合框架:list优化,泛型,java的八大数据类型,装箱、拆箱,Vector和Arraylist的区别,堆栈)

一、List优化:
初始容量10,负载因子0.5(怎么去理解呢?)
解答:1.List list=new ArrayList();//实例化时 list的长度为0
2.首次扩容长度为10
3.当空间不足的时候以0.5进行扩展 10*(1+0.5)=15
4.当list长度浪费了资源怎么办?
(解决办法)固定集合长度空间:List list=new ArrayList(50);

二、泛型(概念):以类型作为参数的类就叫泛型
1.作用:提高程序健壮性,简化代码
2.泛型的默认值是object
3.语法:类名<参数1,参数2,参数3>
例如:Demo5<x,y,z>(相当于一个方法的语法)
调用:Demo5<String,Integer,Float>(注意数据类型只能用引用数据类型)

三、补充知识点(java的八大数据类型):
1.byte:字节
2.short:短整型
3.long:长整型
4.int:整型
5.char:字符型
6.float:单精度浮点型
7.double:双精度浮点型
8.boolean:布尔类型

四、装箱、拆箱(jdk1.5版本之后自动装箱及自动拆箱功能)
1.装箱:值类型–>引用类型

2.拆箱:引用类型-->值类型
例:
	Integer sum=0;
	Integer n=sum;//new   integer(sum); 装箱
	int s=n;//  n.intValue();拆箱

五、Vector和Arraylist的区别
1.安全性:
(1)vector:线程安全
(2)arraylist:线程不安全
2.vector synchronized(同步):效率低 安全性高
例如:
同步:烧开水 等待开水烧开后再泡茶再看电视
3. ArrayList(异步):效率高 安全性低
例如:
异步:烧开水 边等待开水烧开边看电视 后泡茶

六、ArrayList和LinkedList的区别
1.ArrayList:连续空间存储数据 中间不允许有空格 合适使用在查询(遍历的时候)
2.linkedList:链表方式存储数据 链条 频繁操作 插入 ,删除的时候使用

七、什么是链条呢?(图片)
在这里插入图片描述
八、堆栈
1.概念:表示一个先进后出的数据结构,比如子弹夹(附图:堆栈描述)
在这里插入图片描述

2.压:push
3.弹:pop
案例:public class Demo7<k> {

private LinkedList<k> linkedList=new LinkedList<k>();

//压
public void push(k k) {
	linkedList.addFirst(k);//增加第一个
}
//弹
public k pop() {
	k k=linkedList.getFirst();//得到第一个
	linkedList.removeFirst();//移出第一个
	return k;
}
//取集合的长度
public int size() {
	return linkedList.size();
}


public static void main(String[] args) {
	Demo7<String> demo=new Demo7<String>();
	//增加
	demo.push("A");
	demo.push("B");
	demo.push("C");
	demo.push("D");
	//取出来
	while(0!=demo.size()) {
		System.out.println(demo.pop());
	}
}

}
输出结果如图:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值