Java基础笔记(九)中关于集合框架的常用方法有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1819个文字,预计阅读时间需要8分钟。
十年饮冰+热血复习:利用break语句可终止switch语句或循环执行;Break+label:跳出label标记的本层循环;Continue+label:跳过label标记的本次循环,执行下一次循环;Else+if多重嵌套。
gistfile1.txt十年饮冰 难凉热血
复习:
使用break语句可以终止switch语句或者循环的执行
Break label:跳出label标记的本层循环
Continue label:跳过label标记的本次循环,执行下一次循环
Else if多重嵌套:
If()语句一
Else if()语句二
Else if()语句三
....
Else()语句N
哪个判断条件true了,就执行对应的语句,并且不再判断
Switch(表达式):该表达式必须为byte short char int类型之一
循环语句for(正常结束循环出口){
Break;//非正常结束循环出口
}
while先判断,后执行;do-while先执行后判断
只要第一次不为假,while和do-while就执行相同次数
System.in.read();//从键盘缓冲区取出一个字符的ascii码,如果没有,则就会处于光标等待状态
键盘输入,回车,至少会给内存缓冲区加两个字符 ‘\r’ ‘\n’
Ascii: 13 10
我只担心一件事情,我取得的成就配不上我遭受的苦难。
模式匹配:求子串在父串中出现的位置
最朴素的算法:一个一个比,即使子串的第一个字符都匹配不上,也要傻乎乎的比完子串,算法如下:
Test://用1able标记
For(I=0;I<=16;I++){//I<父串长度-子串长度
Flag=true;
//如果内层循环结束之后,flag还是true,那就匹配成功
j=i;//用一个j来标记父串比较字符的位置
For(k=0;k<4;k++){//比较对应字符是否相等
If(searchline.charAt(j)!=substring.charAt(k)){
Flag=false;
}
J++;//比较父串的下一个位置的字符
}
If(flag==true){
System.out.println(i);//输出子串在父串中的位置
Break test;//跳出test标记的循环
}
}
稍微优化的朴素算法:只要子串有一个字符没匹配上,那就移位再匹配,,第二步作业算法如下:
test://用1abel标记
For(I=0;I<=16;I++){//最多比较16次
j=i;//用一个j来标记父串比较字符的位置
For(k=0;k<4;k++){//比较对应字符是否相等
If(searchline.charAt(j)!=substring.charAt(k)){
Continue test;//一旦有一个字符不匹配,那就跳过test标记的本次循环,进行下一次循环
}
J++;//比较父串的下一个位置的字符
}
List.add(i);//不再跳出循环,声明一个集合用来保存子串在父串的位置
}
第三部作业的解决方法之一如下:
先找出子串在父串中的所有位置,保存为一个集合Index
定义一个空字符串result,取到替换部分字符串的前面部分和替换部分拼起来
public String replaceString(String str, String substr, String restr) {
//找出子串在父串中的所有位置,并用集合index保存
List
本文共计1819个文字,预计阅读时间需要8分钟。
十年饮冰+热血复习:利用break语句可终止switch语句或循环执行;Break+label:跳出label标记的本层循环;Continue+label:跳过label标记的本次循环,执行下一次循环;Else+if多重嵌套。
gistfile1.txt十年饮冰 难凉热血
复习:
使用break语句可以终止switch语句或者循环的执行
Break label:跳出label标记的本层循环
Continue label:跳过label标记的本次循环,执行下一次循环
Else if多重嵌套:
If()语句一
Else if()语句二
Else if()语句三
....
Else()语句N
哪个判断条件true了,就执行对应的语句,并且不再判断
Switch(表达式):该表达式必须为byte short char int类型之一
循环语句for(正常结束循环出口){
Break;//非正常结束循环出口
}
while先判断,后执行;do-while先执行后判断
只要第一次不为假,while和do-while就执行相同次数
System.in.read();//从键盘缓冲区取出一个字符的ascii码,如果没有,则就会处于光标等待状态
键盘输入,回车,至少会给内存缓冲区加两个字符 ‘\r’ ‘\n’
Ascii: 13 10
我只担心一件事情,我取得的成就配不上我遭受的苦难。
模式匹配:求子串在父串中出现的位置
最朴素的算法:一个一个比,即使子串的第一个字符都匹配不上,也要傻乎乎的比完子串,算法如下:
Test://用1able标记
For(I=0;I<=16;I++){//I<父串长度-子串长度
Flag=true;
//如果内层循环结束之后,flag还是true,那就匹配成功
j=i;//用一个j来标记父串比较字符的位置
For(k=0;k<4;k++){//比较对应字符是否相等
If(searchline.charAt(j)!=substring.charAt(k)){
Flag=false;
}
J++;//比较父串的下一个位置的字符
}
If(flag==true){
System.out.println(i);//输出子串在父串中的位置
Break test;//跳出test标记的循环
}
}
稍微优化的朴素算法:只要子串有一个字符没匹配上,那就移位再匹配,,第二步作业算法如下:
test://用1abel标记
For(I=0;I<=16;I++){//最多比较16次
j=i;//用一个j来标记父串比较字符的位置
For(k=0;k<4;k++){//比较对应字符是否相等
If(searchline.charAt(j)!=substring.charAt(k)){
Continue test;//一旦有一个字符不匹配,那就跳过test标记的本次循环,进行下一次循环
}
J++;//比较父串的下一个位置的字符
}
List.add(i);//不再跳出循环,声明一个集合用来保存子串在父串的位置
}
第三部作业的解决方法之一如下:
先找出子串在父串中的所有位置,保存为一个集合Index
定义一个空字符串result,取到替换部分字符串的前面部分和替换部分拼起来
public String replaceString(String str, String substr, String restr) {
//找出子串在父串中的所有位置,并用集合index保存
List

