1、正则表达式(此只是可以了解)
实现相同的验证功能, 用String、StringBuffer、StringBuilder可以实现, 用正则表达式也可以实现。但是在实现过程中, 复杂程度是完全不一样的。
1、^: 匹配一个字符串的开头。 在Java的正则匹配中,可以省略不写
2、$: 匹配一个字符串的结尾。 在Java的正则匹配中,可以省略不写
3、[]:匹配一位字符
4、\:
5、\d:匹配所有的数字, 等同于 [0-9]
6、\D:匹配所有的非数字, 等同于 [^0-9]
7、\w:匹配所有的单词字符, 等同于 [a-zA-Z0-9_]
8、\W:匹配所有的非单词字符, 等同于 [^a-zA-Z0-9_]
9、.:通配符, 可以匹配一个任意的字符。
10、+:前面的一位字符连续出现了一次或多次。
11、?:前面的一位字符连续出现了一次或零次。
12、*:前面的一位字符连续出现了零次、一次或多次。
13、{}:对前面的一位或者一组字符出现次数的精准匹配。
14、{m}:表示前面的一位或者一组字符连续出现了m次。
15、{m,}:表示前面的一位或者一组字符连续出现了至少m次。
16、{m,n}:表示前面的一位或者一组字符连续出现了至少m次,最多n次。
17、|:作用于整体或者是一个分组, 表示匹配的内容, 可以是任意的一个部分
18、():分组。 把某些连续的字符视为一个整体对待。
2、lambda表达式
lambda表达式本质上讲是一个匿名函数,主要是为了简化接口,但是简化接口的时候只能是函数式接口。
lambda表达式主要分为六种
1、NoneReturnNoneParameter lambda1 = () -> { System.out.println("无参、无返回值方法的实现"); };
lambda1.test();
2、NoneReturnSingleParameter lambda2 = (int a) -> { System.out.println("一个参数、无返回值方法的实现: 参数是 " + a); };
lambda2.test(10);
3、NoneReturnMutipleParameter lambda3 = (int a, int b) -> { System.out.println("多个参数、无返回值方法的实现: 参数a是 " + a + ", 参数b是 " + b); };
lambda3.test(10, 20);
4、SingleReturnNoneParameter lambda4 = () -> { System.out.println("无参、有返回值方法的实现"); return 666; };
System.out.println(lambda4.test());
5、SingleReturnSingleParameter lambda5 = (int a) -> { System.out.println("一个参数、有返回值的方法实现: 参数是 " + a);
return a * a; };System.out.println(lambda5.test(9));
6、SingleReturnMutipleParameter lambda6 = (int a, int b) -> { System.out.println("多个参数、有返回值的方法实现: 参数a是 " + a + ", 参数b是 " + b); return a * b; };
System.out.println(lambda6.test(10, 20));
lambda表达式的再次省略
参数的类型
lambda表达式中的参数的类型可以省略不写
参数的小括号
如果方法的参数列表中的参数数量 有且只有一个 ,此时,参数列表的小括号是可以省略不 写的。
3、集合框架——Collection集合
Collection接口是单列集合中的顶级接口。在这种集合中存储的数据,只占一列。
学习这个集合,我们应该看Collection的API
提示:Collection的所有子类都要继承,所以Collection相当重要
//Collection中只有14个方法
public class Demo1 {
public static void main(String[] args) {
//在开始之前,我们首先要实例化一个集合对象
Collection<String> list = new ArrayList<>();
//得到一个集合后,我们需要向集合中添加元素
//1、add()
list.add("aa");
list.add("bb");
list.add("cc");
//在得到集合后,我们可以打印看看集合有什么元素
System.out.println(list);
//2、addAll():这个方法的意思是将指定集合元素添加到已有集合后面
//所以我们需要再次创建一个集合
Collection<String> list1 = new ArrayList<>();
list1.add("dd");
list1.add("ee");
list1.add("ff");
((ArrayList<String>) list).addAll(2, list1);
System.out.println(list);
//3、clear()移除集合中的所有元素
list.clear();
//此时list集合中没有元素,结果为[]
System.out.println(list);
//4、contains()这个是查看当前元素是否包含某一个元素
//查看list1中是否包含dd
boolean contains = list1.contains("dd");
//结果true
System.out.println(contains);
//5、containsAll(),查看该集合中是否含有另外一个集合的所有元素
Collection<String> list2 = new ArrayList<>();
list2.add("ee");
list2.add("ff");
//查看集合list1中是否包含了list2中的全部内容
boolean b = list1.containsAll(list2);
//结果为:true
System.out.println(b);
//6、equal()比较集合中是否存在指定对象
Collection<String> list3 = new ArrayList<>();
list3.add("ee");
list3.add("ff");
boolean dd = list2.equals(list3);
//结果为true,list2与list3集合相同
System.out.println(dd);
//7、hasCode()返回集合的哈希码值
//返回list2的哈希码值
System.out.println(list2.hashCode());
//8、isEmpty()判断集合是否为空
boolean empty = list2.isEmpty();
//结果为false,list2集合中的结果确实不为空
System.out.println(empty);
//9、iterator()返回集合中的元素进行迭代的迭代器,主要用于对数组的遍历
Iterator<String> iterator = list2.iterator();
//此时获得是该结合迭代的地址
System.out.println(iterator);
//10、remove()从集合中移除某个元素
boolean ee = list2.remove("ee");
//此时集合list2中只有一个元素
System.out.println(list2);
//11、removeAll()移除某个集合中在该集合中相同的元素
Collection<String> list4 = new ArrayList<>();
list4.add("ff");
list4.add("gg");
boolean b1 = list3.removeAll(list4);
//此时结果就剩下一个元素了
System.out.println(list3);
//12、retain()保留两个集合中都有的元素
//13、size()求集合中元素的数量
int size = list4.size();
//此时结果为2
System.out.println(size);
//14、toArray()把集合中的元素转换成数组
Object[] objects = list4.toArray();
for (Object object : objects) {
System.out.println(object);
}
}
}
|