1月16日内容

一,昨日回顾
1)Collection集合遍历方式目前有几种方式?
两种:
public Object[] toArray() —>遍历Object[]数组 (传统方式遍历)
迭代器遍历
public Iterator iterator()
2)数组和集合的区别?
1)长度的区别
集合长度是可变的,
数组长度是固定的
2)存储数据类型的区别
集合只能存储引用类型
数组既可以存储基本类型的数据,也可以引用类型
3)存储元素
集合可以存储多种类型的元素 ,即使以后加入了泛型,那么可以通过反射技术添加其他类型
数组只能存储同一种类型的元素
集合:
ArrayList array = new ArrayList() ;
array.add(10);
array.add(20) ;

array.add(“hello”); 报错了,编译通过 ,但是通过反射技术添加
3)集合迭代器遍历格式?代码体现
固定的写法
Iterator it = 集合对象.iterator() ;
while(it.hasNext()){
//Obejct obj = it.next() ;
//字符串类型
String s = (String)(it.next()) ;
System.out.println(obj) ;
}
4)Integer i = new Integer(100) ;
i+= 200 ; 做了哪些事情? JDK5新特性,自动拆装箱!
自动拆装箱
i += 200 ;---->自动拆箱:将Integer类型---->int类型, 跟200做计算,计算完毕,
将结果在装箱为 Integer类型
A)其他常用类
Date类
Date日期格式和日期文本格式的相互转换!
Date------>String格式 :格式化操作
Date date = new Date() ;java.util.Date;
//创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”) ;
String s = sdf.format(date) ;
System.out.println(s) ;
String----->Date :解析操作
String source = “2020年01月16日”
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy年MM月dd日”) ;
Date d = sdf.parse(source) ;
System.out.println(d)
获取随机数:
int num = (int)(Math.random()*100 +1)
Random类:
Random r = new Random() ;
int n = r.nextInt(100)+1 ; [0,100]
集合: Collection 单例集合体系
List Set
ArrayList,LinkedList,Vector HashSet,TreeSet
Collection集合:
专有遍历方式 :迭代器 Iterator
二,今日内容
为什么存在泛型? 频繁在集合中使用的
定义一个数组:int类型的数组
int[] arr = {11,22,33,44,55} ;
数字在定义的时候,将数组中存储的数据类型就已经限定了,不能存储该类型以外的元素!
由于集合添加元素的时候,可以添加任意类型元素,在开发中,有时候需要指定存储的类型,集合存在一个技术就和数组一样,
在创建对象的时候,就将数据类型限定了---->泛型
格式:
<数据类型> 注意:只能是引用数据类型
泛型的特点:
1)解决了创建集合以及使用集合对象的时候的黄色警告线的问题
2)将运行期时期异常提前了编译时期 (提高了程序的安全性)
3)避免了强制类型转换
//泛型的应用场景:在集合中使用居多!
//早期没有泛型概念,程序员在使用强制类型转换,经常会出现:ClassCastException:类转换异常
泛型的高级通配符(了解,以后在看源码能看的懂即可,知道定义格式的意思)

<?> 任意类型:表示 Object类,或者是任意的Java类型(自定义类型或者Jdk提供的其他的类..) <? extends E> :向下限定:E类型以及它的子类 <? super E>:向上限定:E类型以及它的父类 增强for循环,jdk5以后的 新特性 格式: for(数据类型 变量名 :集合对象/数组对象){ 输出这个变量 } 注意事项: 增强for循环主要是用来替代集合的迭代器的! 一般都使用增强for遍历集合! 遍历的集合对象或者引用类型的数组对象名不能为空,否则,出现空指针异常! List集合中存储学生类型,添加3个学生,然后遍历 toArray() Iterator iterator() ListIterator listIterator() 普通for:size()/get(int index)相结合 增强for循环遍历集合 List集合特点: 存储和取出一致,并且允许元素可以重复! 特有功能: void add(int index,Object element):在指定的位置处添加指定的元素 Object get(int index):获取指定位置处的元素(重点) Object remove(int index):删除指定位置的元素 ListIterator listIterator():列表迭代器 set(int index,Object element):将指定位置处元素进行替换(修改) 所指定的元素 ListIterator listIterator():列表迭代器 boolean hasNext() :正向遍历,判断是否有下一个元素 Object next():获取下一个元素 boolean hasPrevious():逆序遍历,判断是否有上个元素 Object previous():获取前一个元素 先正向遍历,再逆向遍历! List集合有几种遍历方式: Obejct[] toArray() Iterator iterator() size()/get(int index):普通for ListIterator listIterator() List集合 遍历方式 常用: 通用迭代器以及size()/get(int index)相结合 List集合的三个子实现类的特点: ArrayList: 特点:底层数据结构是数组,查询快,增删慢 从线程角度: 线程不安全----->不是同步的----->执行效率高! 如果以后在笔试题,没有告诉你具体的集合是谁,都是使用ArrayList LinkedList: 特点:底层数据结构是链接链表(链表) ,查询慢,增删快 从线程角度: 线程不安全---->不同步------> 执行效率高 Vector: 特点:底层数据 结构是数组,查询快,增删慢 线程角度: 线程安全的----->同步的------->执行效率低! 这个三个子实现类都有共性特点: 存储和取出一致,并且元素可以重复的! Vector类的特有功能: Vector中将元素都称为"组件" public void addElement(Object obj) :------ > add(Object obj) 给集合中添加元素 public Object elementAt(int index)-------- >get(int index ):通过索引值获取指定的元素 public Enumeration elements()------> Iterator iterator() :获取迭代器 Enumeration:接口 (枚举接口(Vector集合的向量组件的枚举)) boolean hasMoreElements()----> 类似于: boolean hasNext() :判断是否存在下一个可以遍历的元素 Object nextElement() ----->类似于 Object next():获取下一个元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值