前言
数组、排序和查找复习完成。
一、数组查找
(1)查找分类
在java中,常用的查找有两种:
1)顺序查找
2)二分查找
(2)顺序查找
案例:
有一个数列:{"java" , "python" , "golang"};
从键盘输入一组字符串 判断数列中是否包含此字符串(顺序查找)
要求:如果找到了,就提示找到,并给出下标值 ; 没找到就给出提示
思路:
1. 定义一个字符串数组
2. 接收用户输入,遍历数组,逐一比较,如果有,则提示信息,并退出
直接上代码:
importjava.util.Scanner; publicclassSeqSearch { publicstaticvoidmain(String[] args) { //定义一个字符串数组String[] names= {"java" , "python" , "golang"}; ScannermyScanner=newScanner(System.in); System.out.println("请输入字符串:"); StringfindName=myScanner.next(); //遍历数组,逐一比较,如果有则提示信息并退出//判断有没有成功可以用一个 索引/标识符/标记 等intindex=-1; //不能为 i - names.equals 间的数for(inti=0; i<names.length ; i++) { //比较字符串 equals , 如果要找到名字就是当前元素if(findName.equals(names[i])) { System.out.println("恭喜你找到了"+findName); System.out.println("下标为:"+i); // 将i保存到indexindex=i; break; // 退出 } } if(index==-1) { System.out.println("sorry , 没有找到"+findName); } } }
可以看出在找到字符串后便会提示找到并且输出该字符串的下标。
未找到便会提示 sorry,没有找到。
二、二维数组
(1)快速入门
/*
请用二维数组输出如下图形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
*/
publicclassTwoDimensionalArray01 { publicstaticvoidmain(String[] args) { int[][] arr= { {0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 2, 0, 3, 0, 0}, {0, 0, 0, 0, 0, 0} }; for(inti=0;i<arr.length; i++) {// 遍历二维数组的每个元素for(intj=0;j<arr[i].length; j++) { System.out.print(arr[i][j] +" "); // 输出二维数组 } System.out.println( ); // 换行 } } }
分析:
1)arr[i] 表示一维数组的第i + 1个元素。比如:arr[0] : 一维数组的第一个元素
2)arr[i].length 会 得到对应的每个一维数组的长度
3)访问第 (i + 1) 个一维数组的第 (j + 1) 个值即 arr[i][j];
例如: 访问3行 4列,它是第三个一维数组的第四个值 arr[2][3];