一.数组的定义及声明
1.数组是一个变量,存放相同数据类型的一组数据
2.数组的基本要素:
数组名称(也叫标识符)要遵循驼峰命名法
数组中的每一个值都叫数组的元素
每一个数组的元素都有一个下标,而且是从0开始
数组的类型可以使int double char 等类型 或者是一些引用数据类型
数组长度就是数组中能够存放多少个元素,注意 数组长度是固定不变的 一按确定不能改动,避免下标越界的错误
3.使用数组的四个步骤:
先声明:int[] num;
分配空间:num=new int[];
赋值:num[0]=8;
处理数据:num[0]=num[0]*8;
4.声明一个数组几种写法
package com.bdqn.practice; import java.util.*; public class Demo9 { public static void main(String[] args){ int[] num=new int[5]; int[] num1={1,2,3,4,5}; int[] num2=new int[]{1,2,3,4,5}; } }
以下是几种错误的写法:
package com.bdqn.practice; import java.util.*; public class Demo9 { public static void main(String[] args){ int[] num=new int[]; int[] num1; num1={1,2,3,4,5}; int[] num2=new int[5]{1,2,3,4,5}; } }
讲解:1.声明一个数组是必须写明数组的长度 2.声明数组后再为数组赋值也会编译报错,边声明边赋值必须写在同一行 3.不能边声明数组长度边赋值,这样也会编译错误
二. 利用for或者foreach遍历数组(循环数组中的值)
package com.bdqn.practice; import java.util.*; public class Demo9 { public static void main(String[] args){ int[] num=new int[]{1,3,5,9,7};
//传统for循环 for(int i=0;i<num.length;i++){ System.out.print(num[i]+" "); }
//foreach循环 System.out.println(); for(int list:num){ System.out.print(list+" "); } } }
讲解:1.foreach (增强型for循环)在1.5版本后的JDK才可以使用
2.传统循环和增强型循环的区别:传统for循环可以边循环边赋值,而foreach循环只是遍历数组中的元素(如果只是输出元素 foreach优于传统循环)
3.有些时候在环境中使用不了foreach ,1.首先确定JDK版本号,2.确定编译器的版本号
此图是更改编译器版本号的位置
三.冒泡排序及选择排序
1. 冒泡排序
package com.bdqn.practice; import java.util.*; public class Demo9 { public static void main(String[] args){ int[] num=new int[]{1,3,5,9,7}; //冒泡排序 for(int i=0;i<num.length-1;i++){ for(int j=0;j<num.length-1-i;j++){ if(num[j]>num[j+1]){ int temp=num[j]; num[j]=num[j+1]; num[j+1]=temp; } } } for(int list:num){ System.out.print(list+" "); } } }
循环输出后结果是1 3 5 7 9
2.选择排序
package com.bdqn.practice; import java.util.*; public class Demo9 { public static void main(String[] args){ int[] num=new int[]{1,3,5,9,7}; //选择排序 for(int i=0;i<num.length;i++){ int min=i; for(int j=i+1;j<num.length;j++){ if(num[min]>num[j]){ min=j; } } if(min!=i){ int temp=num[min]; num[min]=num[i]; num[i]=temp; } } for(int list:num){ System.out.print(list+" "); } } }
3.Arrays.sort()排序
package com.bdqn.practice; import java.util.*; public class Demo9 { public static void main(String[] args){ int[] num=new int[]{1,3,5,9,7}; Arrays.sort(num); for(int list:num){ System.out.print(list+" "); } } }
Arrays.sort()默认是升序输出,如果想倒序输出利用for循环递减的方式输出
4.binarySearch获取数组中至制定元素的下标值
4.在升序或者降序中插入元素
package com.bdqn.practice; import java.util.*; public class Demo7 { public static void main(String[] args){ Scanner input=new Scanner(System.in); int [] num=new int[6]; num[0]=99; num[1]=88; num[2]=85; num[3]=63; num[4]=60; System.out.println("插入前的顺序是:"); for(int i=0;i<num.length-1;i++){ System.out.print(num[i]+" "); } System.out.println(); System.out.println("请输入数值:"); int score=input.nextInt(); int index=0; for(int i=0;i<num.length-1;i++ ){ if(score>num[i]){ index=i; } } for(int i=num.length-1;i>index;i--){ num[i]=num[i-1]; } num[index]=score; for(int list:num){ System.out.print(list+" "); } } }