第五周学习感悟

本周的感悟与收获

本周小结

这一周我感觉过的有点慵懒,因为在看视频的过程中知识点太多了,而且有时候看了一遍都没有弄明白,但是如果我要看第二遍的话,进度又比别人慢了一大截,所以我感觉这周我学到的东西特别少,但是要记的东西又特别多,接下来就让我罗列一下这周的知识点,以便以后的复习

迭代器遍历

代码:

Tterator<String> it = list.iterator();
while(it.hasNext()){
String str = it..next();
System.out.println(str);
}

细节注意点:
1.迭代器遍历完毕,指针不会复位
2.循环中只能用一次next方法
3.迭代器遍历时,不能用集合的方法进行增加或删除

增强for遍历

代码:

for(String s : list){
System..out.println(s);
}

Lambda表达式

代码:

coll.forEach({
public void accept(String s){
	System.out.println(s);
		}
 	}
);
//可以简化为:
coll.forEach(s->System.out.println(s));

正则表达式

1.预定义字符(只匹配一个字符)

符号含义举例
[]里面内容出现一次[0-9]
()分组a(bc)+
^取反[^abc]
&&交集,不能写单个的&[a-z&&m-p]
|写在方括号外面表示并集[a-zA-Z0-9] x|X
.任意字符\n回车符号不匹配
转义字符\\d
\\d0-9\\d+
\\D非0-9\\D+
\\s空白字符[\t\n\xOB\f\r]
\\S非空白字符[^\s]
\\w单词字符[a-zA-Z_0-9]
\\W非单词字符[^\w]
?0次或1次\\d?
*0次或多次\\d*(abc)*
+1次或多次\\d+ (abc)+
{}具体次数a{7} \\d{7,9}
(?!)忽略后面字符的大小写(?!)abc
a((?!)b)c只忽略b的大小写a((?!)b)c

2.正则表达式在Pattern类中
3.正则表达式的方法

public String match(String regex) 判断字符串是否满足正则表达式的规则
public String replaceAll(String regex,String newStr) 按照正则表达式的规则进行替换
Public String[] split(String regex)按照正则表达式的规则切割字符串

3.分组的规则
规则1.从1开始,连续不间断
规则2.从左括号为基准,最左端为第一组,其次为第二组,一次类推(\\d+)(\\d+)(\\d+)
4.正则表达式中的分组有两种:
捕获分组,非捕获分组
5.捕获分组(默认):
可以获取每组中的内容反复使用
6.组号的特点:
从1开始,连续不间断
以左括号为基准,最左边是第一组

7.非捕获分组:
分组之后不用再用本组数据,仅仅把数据括起来,不占组号(?😃,(?=)(?!)都是非捕获分组

时间相关的知识点

世界标准时间:格林威治时间 简称GMT,目前世界标准时间(UTC)已经替换为:原子钟
中国标砖时间:世界标准时间+8小时
时间单位换算:1秒=1000毫秒
1毫秒=1000微秒
1微秒=1000纳秒
与时间相关的代码:
//创建对象表示时间
Date d1 = new Date();
//创建对象表示一个指定时间
Date d2 = new Date(0L)
//setTime修改时间
d1.setTime(1000L);
//getTime获取当前时间的毫秒值
long time = d2.getTime();

SimpleDateFormat

构造方法

public SimpleDateFormat()             //构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern)			//构造一个SimpleDateFormat,使用指定格式
public final String format(Date date)			//格式化(日期对象->字符串)
public Date parse(Steing source)				//解析(字符串->日期对象)

1.SimpleDateFormat的两个作用:格式化,解析
2.如何定义格式:yyyy年MM月dd日 HH:mm:ss

Calendar

Calendar概述

Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年,月,日
细节:Calendar是一个抽象类,不能直接创建对象

Calendar的常用方法

public final Date getTime()			获取日期对象
public final setTime(Date date)		给日历设置日期对象
public long getTimeInMillis()			拿到时间毫秒值
public void setTimeMillis(long millis)			给日历设置时间毫秒值
public int get (int field)			取日历中的某个字段信息
public void set (int field ,int value)			修改日历的某个字段信息
public void add(int field ,int amount)			为某个字段增加/减少指定的值

Calendar表示什么?
表示一个时间的日历对象
细节点:
日历类中月份的范围:0-11
日历类中星期的特点:星期日是一周中的第一天

ZoneId

static set<String> getAvailableZoneIds()		//获取java中支持的所有时区
static ZoneId systemDefault()			获取系统默认时区
static ZoneId of(String zoneId)		获取一个指定时区

LocalDateTime可分为:LocalDate和LocalTime

进制的转换

public static String toBinaryString(int i)			//得到二进制
public static String toOctalString(int i)			//得到八进制
public static String toHexString(int i)			//得到十六进制
public static int parseInt(String s)				//将字符串类型的整数转成int类型的整数

细节:
1.在类型转换的时候,括号中的参数只能是数字不能是其他,否则大妈会报错
2.在8中包装类当中,除了Charcter都有对应的parseXxx的方法,进行类型转换

集合进阶

在这里插入图片描述

Collection

代码

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

细节
1.添加元素
如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的
如果我们要往Set系列集合中添加数据,如果当前要添加的元素不存在,方法返回true,表示添加成功,如果当前要添加的元素已经存在,方法返回false,表示添加失败,因为Set系列的集合不允许重复
2.删除
因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除,只能通过元素对象进行删除
方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false,如果删除的元素不存在,就会删除失败
Collection是单列集合中的顶层接口,所有方法被List和Sei系列集合共享
常见成员方法:
add,clear,remove,contains,isEmpty,size
三种通用的遍历方式:
迭代器:在遍历的过程中需要删除元素,请使用迭代器
增强for,Lambda:
仅仅想遍历,那么使用增强for或Lambda表达式

List

Collection的方法List都继承了
List集合因为有索引,所以多了很多索引操作的方法
例如:

void add(int index,E element)			//在此集合中的指定位置插入指定的元素
E remove (int index)			//删除指定索引处的元素,返回被删除的元素
E set(int index,E element)			//修改指定索引处的元素,返回被修改的元素
E get(int index)			//返回指定索引处的元素

数据结构

栈的特点:后进先出,先进后出
队列的特点:先进先出,后进后出
数组的特点:是一种查询快,增删慢的模型

查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同(元素在内存中是连续存储的)
删除效率慢:要将原始数据删除,同时后面的数据前移
添加效率极低:添加位置后的每一位数据后移,在添加元素

链表的特点:查询慢,无论查询哪个数据都要从头开始找
链表中的结点时独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址

ArrayList的底层原理

在这里插入图片描述

LinkedList

public void addFirst(E e)			//在该列表开头插入指定的元素
public void addLast(E e)			//将指定的元素追加到此列表的末尾
public E getFirst()			//返回此列表中的第一个元素
public E getLast()			//返回此列表中的最后一个元素
public E removeFirst()			//从此列表中删除并返回第一个元素
public E removeLast()			??从此列表中删除并返回最后一个元素

泛型

使用场景:当一个类中,某个变量的数据类型不确定是,就可以定义带泛型的类
格式:

修饰符 class 类名<类型>{}

例子:

public class ArrayList<E>{
创建该类对象=时,E就确定类型
}

其他的…到点了下周再写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值