一点
二点
image.png
image.png
image.png
获取功能
image.png
8.正则匹配功能:find group 代码如下
package Dayt9_3;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test2 {
public static void main(String[] args) {
String string ="abc sd sdfr drty awdse asd zxc z asd wer ty";
String redex = "\\b\\w{3}\\b";//\\转义字符
//
Pattern compile = Pattern.compile(redex);
Matcher matcher = compile.matcher(string);
boolean matches = matcher.matches();
boolean b = matcher.find();
//不对
/* String string1 = null;//用来接收
while ((string1 = matcher.group()) != null) {
System.out.println(string1);
}*/
//正则匹配
while (matcher.find()) {
System.out.println(matcher.group());
}
// No match found
//这种表达是错误的,在group之前应该find
// System.out.println(matcher.group());
}
}
image.png
对arraycopy的说明,1.要复制的数组 2.从哪开始(索引) 3.被改变的数组 4.被改变的数组从哪开始添加(索引) 5.被改变多少个元素.
int[] ints ={1,4,5,6,7};
int[] ints1 ={2,88,99,111};
System.arraycopy(ints,1,ints1,1,3);
//索引仍然从0开始
System.out.println(Arrays.toString(ints1));//2 4 5 6
数组
image.png
杨辉三角
image.png
代码如下:
package Dayt9_3;
import java.util.Arrays;
public class tangyui {
public static void main(String[] args) {
int[][] yanghui = new int[10][];
for (int i =0;i
//对于java来说没有二维数组
//设置如下 每一行的个数
yanghui[i] = new int[i+1];
//给收尾设置1......
yanghui[i][0] = yanghui[i][i] =1;
//给每行的非收尾设置数
if (i>1){
for (int j =1;j
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
}
}
}
//对杨辉三角遍历输出
for (int i =0 ;i< yanghui.length;i++){
for (int j =0; j< yanghui[i].length;j++){
System.out.print(yanghui[i][j] + " ");
}
System.out.println();
} //System.out.println("\r\n");
}
}
集合转数组,数组转集合
set集合
set
问题:获得的set集合为什么要放到ArraysList集合中?......对于set集合有他的自带的方法返回迭代器(hasNext 和 next),对于排序可调用collections.sort(自定义排序)
Collection 接口中的方法
image.png
image.png
俩重要注意事项:对于add对象要重写equal方法,对于string来说已经重写了equal方法,所以返回的是Ture
image.png
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Test3 {
public static void main(String[] args) {
List objects = new ArrayList<>();
objects.add("123");
objects.add("321");
objects.add("099");
objects.add("888");
//测试方法
String ST = "123";
boolean equals = ST.equals(new People("123"));
System.out.println(equals);
//测试方法 remove //从集合中移除"123"
// boolean remove = objects.remove("123");
System.out.println(objects);
//测试方法 removeAll 移除两集合中公共的部分,对左边集合操作
Collection objects1 = new ArrayList<>();
objects1.add(123);
objects1.add(333);
objects1.add("123");
objects1.add("099");
boolean b = objects.removeAll(objects1);
//System.out.println(objects);//[321, 888]
//测试方法 retainAll 把交集放到左边集合中
//boolean b = objects.retainAll(objects1);
//System.out.println(objects);//[123, 099]
迭代器
三种方法引入
原理介绍
注意:迭代器只是指针不是容器,原来集合才是容器,对容器遍历
image.png
注意移除操作,第二次使用迭代器时要重新获取迭代器........
image.png
也要避免直接remove
增强for
image.png
LIST接口方法
image.png
注意事项:
image.png
List integers = Arrays.asList(1, 2, 3);
// objects1.add(integers);
System.out.println(objects1);//[123, 333, 123, 099, [1, 2, 3]]
objects1.addAll(integers);
System.out.println(objects1);//[123, 333, 123, 099, 1, 2, 3]
注意:两个remove方法 还有两个add 及addAll
1,2
如果要删除,则应该new INTEAGER(2)
image.png
SET
image.png
注意:比较的是hashcode
image.png
自然排序和定制排序
image.png
小结
image.png
一些面试题
image.png
image.png
image.png
image.png
HashMap和ArrayList集合遍历方法总结
//HashMap遍历方法
Map obj = new HashMap<>();
//方法一使用set的迭代器 调用这个是返回时一个键值对
Iterator> iterator1 = obj.entrySet().iterator();
while (iterator1.hasNext()) {
//使用迭代器不方便
Map.Entry next = iterator1.next();
//map.entry中方法获取
System.out.println(next.getKey() + " " + next.getValue());
}
//方法二 同样是set的迭代器,ketset获取的是键的set视图 set接口有迭代器方法,
//对于集合map.entry 有getkey 和getvalue 方法
//补充对于list接口有他自己的调用迭代器方法
//对这个方法,获取的键还要通过get方法来获取value值
Iterator iterator2 = obj.keySet().iterator();
while (iterator2.hasNext()) {
//转型
Integer next =(Integer) iterator2.next();
//打印结果获取value值 这里是map集合获取get方法是他的
System.out.println("key" +next + " " + "value" + obj.get(next));
}
//对于使用方法获取的键值对或者键的set视图采用foreach方法来获取
//方法三-方法一
Set> entries = obj.entrySet();
for (Map.Entry entry : entries) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
//方法四
//注意事项要注意类型的问题
Set objects1 = obj.keySet();
for (Object o : objects1) {
Integer O1 = (Integer) o;
//获取的是键值 是否要转型
System.out.println("key" + O1+ " " + "value" + obj.get(o));
}
//方法五,只能获取value的视图 对视图进行遍历获取value值,
Collection values = obj.values();
//介绍关于list集合的特殊迭代器,如下
List objects2 = new ArrayList<>();
//用于处理集合中存放集合
ListIterator listIterator = objects2.listIterator();
//获取了迭代器,注意是list中的方法
//对于list集合可以普通for或者转数组来遍历获取
Map接口
1.注意hashmap和hashtable的区别,hashmap键和值能存放null,而hashtable不可以
注意