1.遍历数组
数组类型一旦确定,则只能存储该类型或者是可以自动类型转换成该类型的数据
2.冒泡排序
int[] arr = {6,13,11,9,18};
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i : arr) {
System.out.println(i);
}
3.二分查找
前提条件:数组是有顺序的
int[] arr2= {1,2,5,7,9};
int index = Arrays.binarySearch(arr2, 9);
System.out.println(index);
int index2 = Arrays.binarySearch(arr2, 9);
System.out.println(index2);
}
public static int binarySerach(int[] arr,int key) {
//最小值
int minIndex = 0;
int maxIndex = arr.length-1;
while(minIndex<=maxIndex) {
int middleIndex = (minIndex+maxIndex)/2;
if(key>arr[middleIndex]) {
maxIndex = middleIndex+1;
}else if (key<arr[middleIndex]) {
maxIndex = middleIndex-1;
}else {
return middleIndex;
}
}
return -1;
}
4.sort
sort函数 进行排序 底层利用的是快速排序
int[] arr= new int[] {4,2,7,6,9};
Arrays.sort(arr);
Arrays.toString
将数组中元素 拼接成一个字符串 用来展示数组中元素内容
String str = Arrays.toString(arr);
System.out.println(str);
System.out.println(Arrays.toString(arr));
5.顺序查找
boolean b =false;
for (int i = 0; i < arr.length; i++) {
if(arr[i]==5) {
b=true;
}
}
if(b) {
System.out.println("找到了");
}else {
System.out.println("没找到");
}
6.创建数组
更加推荐第一种
int[][] arr;
int[] arr2[];
int arr3[][];
数组在声明的时候就必须确定长度,要先初始化,没有初始化就调用会造成空指针异常
public class Test6 {
public static void main(String[] args) {
//存储小明 小红 小兰 小绿 语文 英语 数学 物理
//控制台输入,计算每个同学的总成绩
int[][] stus = new int[4][4];
Scanner sc = new Scanner(System.in);
//外层循环控制一维数组的个数
for (int i = 0; i < stus.length; i++) {
for (int j = 0; j < stus[i].length; j++) {
System.out.println("请输入第"+(i+1)+"个同学的第"+(j+1)+"个成绩");
stus[i][j] =sc.nextInt();
}
}
//总成绩
for (int i = 0; i < stus.length; i++) {
int sum = 0;
for (int j = 0; j < stus[i].length; j++) {
sum+=stus[i][j];
}
System.out.println("第"+(i+1)+"个同学的总成绩:"+sum);
}
}
}
7.可变参数
可变参数传值的个数 0~n,可变参数实质上是一个可变长度数组,自己重新定义一个新的更长的数组,把原来的数组存过来,一个方法至多只能有一个可变参数 ,并且可变参数必须放在最后一个位置
public class Test7 {
public static void main(String[] args) {
a("aa",2,"a","b","d","f");
b("aa","b","d");
}
public static void a(String name,int age,String...stu) {
System.out.println(name+" "+age);
for (int i = 0; i < stu.length; i++) {
System.out.println(stu[i]);
}
}
public static void b(String name,String...sex) {
}
}
8.方法
定义方法的优点
减少重复代码,提高代码的复用性
提高阅读性
提高代码的可维护性
public class Test8 {
public static void main(String[] args) {
print99();
System.out.println();
print99();
}
//写一个方法作用打印99乘法表
public static void print99() {
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i; j++) { System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
当声明的方法内部需要变化的值则可以定义参数,由调用者给传递至形式参数–>形参
方法内部能产生参数
要将参数给调用者
返回 返回值
要修改三个地方
1.void要替换成要返回的类型
2.通过return将返回值返回
3.通过变量接收返回结果
要求必须执行一个到一个return才可以,否则编译方法报错
结束方法 在方法的返回值是void的时候通过return结束方法