- 自动装箱和自动拆箱
• 自动装箱:自动将基本上数据类型转换成基本数据类型的包装类
• 自动拆箱:自动将基本数据类型的包装类转换成基本数据类型 - 正则表达式
- 概念:
就是一套规则,可以用于匹配字符串 - 调用方法:
Boolea matches(String reges):判断当前字符串是否匹配正则表达式规则,符合返回true不符合返回false - 规则:
1.[]:表示匹配单个字符
2.{}:表示的是数量 [a-z]*表示a-z中的任意字符出现0次 或者多次
注意:第一个字符和后面的分开不能算在一起比如要取5个要去掉前面的
- 概念:
- 集合
1.体系
2.对于体系的学习Collection(接口) |----List(接口):有顺序可以重复有索引 |---ArrayList(类) |---LinkedList(类) |---set(接口):
3.collection常用的功能学顶层,因为最顶层包含了所有的共性.用底层,因为最底层就是具体的实现.Boolean add(); Void clear(); Boolean contains(object o):判断是否包含某对象 Boolean isEmpty();判断是否为空 Boolean renmove() Int size() Object[] toArray();转换成obj对象数组 Iterator iterator():返回一个迭代器 迭代器(重点)
遍历集合的方法:1.toArray()然后通过遍历集合 2.iterator()可以返回一个迭代器对象,我们可以通过迭代器对象来迭代集合 如何获取 :Iterator iterator(); 方法: Boolean hasNext():判断是否还有一个元素 Object next() :获取对象的元素. 并发修改异常:迭代器是依赖于原集合的,当原集合和迭代器中的元素不同时就会发生这个异常 解决方法:使用迭代器遍历,同时使用迭代器的删除和添加功能,ListIterator. 使用集合中其他的遍历方法,然后使用集合的添加和删除方法(开发中经常用的一种方法) 获取方法:在List中定义了获取ListIterator对象的方法listIterator()迭代器的使用场景:
值是遍历集合中的元素,可以使用迭代器,但是如果对集合中的元素进行添加和删除操作,不推荐使用迭代器. 由于集合可以存储任意类型的对象,当我们存储了不同类型的对象,就有可能在转换到时候出现数据类型转换异常 所以java为了解决这个问题,给我们提供了一种机制叫做泛型,泛型:
是一种广泛的类型,把明确数据类型的工作提前到了编译时期,借鉴了数组的特点泛型好处:
避免了类型转换的问题 可以减少黄色警告线 可以简化代码的书写什么时候可以使用泛型?
当我们看到<E>的时候就可以使用泛型增强for循环
格式:For(元素类型 变量名:数组名或集合){ 可以直接使用变量; }好处:简化代码,并且不需要类型转换
注意:在增强for循环中不能修改集合,否则会抛出并发修改异常.其实for循环的底层就是使用迭代器
使用增强for循环的前提:必须实现Iterable<>接口- 数据结构
数组:查询快,修改快,增删慢
链表:查询慢,修改慢,增删快
栈:先进后出
队列:先进先出 子接口
List:特点: 有序的(存储和读取的顺序是一致的) 有整数索引 允许重复的 List的特有功能: Void add(int index, e element):在指定索引处添加元素 E get(int index):根据索引获取元素 E remove(int index):根据索引删除元素并返回 E set(int index ,e element):根据索引更改元素,并返回被修改元素 子实现类: ArrayList: LinkedList: 特有功能: Void addFirst();添加到表头 Void addLast();添加到表尾 E getFirst();获取表头 E getLast():获取表尾 E removeFirst():移除表头 E removeLast():移除表尾Set:
特点: 无序的(存储和读取的顺序是不一致的) 不允许重复 无索引 set的特有功能: 子实现类