Java 【数组】
一.数组的基本使用
public class demo{ public static void main(String[] args){ //使用数组四部走 int[] a; //声明数组 a = new int[5]; //分配空间 for(int i=0;i<5;i++){ a[i] = i; } a[0] = a[0]*10; //处理数据 for(int i=0;i<5;i++){ System.out.println(a[i]); } } }
1.四种写数组方法
public class demo{ public static void main(String[] args){ //第一种 int arr1[]; //声明 arr1 = new int[5]; //分配空间 arr1[0] = 1; //赋值 //第二种 int arr2[] = new int[5]; //声明并分配空间 arr2[0] = 32; //对数据赋值 //第三种 int arr3[] = {8,2,3,4}; //声明、赋值、分配 //第四种 int arr4[] = new int[]{2,5,8,7}; //声明、赋值、分配 System.out.println(arr1[0]); System.out.println(arr2[0]); System.out.println(arr3[0]); System.out.println(arr4[0]); } }
二.数组的排序
import java.util.Arrays; //Arrays的sort()排序 import java.util.Scanner; public class demo1{ public static void main(String[] args){ Scanner data = new Scanner(System.in); int[] arr1 = new int[10]; String[] arr2 = new String[7]; //对数字进行排序 for(int i=0;i<arr1.length;i++) { System.out.println("请输入第"+ i +"学生成绩"); arr1[i] = data.nextInt(); //数值赋值 } Arrays.sort(arr1); //对数组排序 for(int i=0;i<arr1.length;i++) { System.out.println(arr1[i]); } //对字母进行排序 for(int i=0;i<arr2.length;i++) { System.out.println("请输入字母"+ i); arr2[i] = data.next(); //字符赋值 } Arrays.sort(arr2); //对数组排序[逆序] for(int i=arr2.length-1;i>=0;i--) { System.out.println(arr2[i]); } } }
三.数组的复制
import java.util.Scanner; public class demo{ public static void main(String[] args){ //数组的复制 int arrA[] = new int[]{2,3,4,5,6,7}; int [] arrB = new int[arrA.length]; for(int i=0;i<arrA.length;i++){ arrB[i] = arrA[i]; } for(int i=0;i<arrB.length;i++){ System.out.println(arrB[i]); } } }
四.数组的查找算法
import java.util.Scanner; public class demo{ public static void main(String[] args){ //数组查找算法 String arr[] ={"张三","里斯","网二","码字","庇护"}; Scanner data = new Scanner(System.in); System.out.println("请输入查找的学生的姓名:"); String name = data.next(); //输入查找值 boolean flag = false; //查找标志位 for(int i=0;i<arr.length;i++){ //循环数组查找 if(name.equals(arr[i])){ //如果输入值等于数组值 flag=true; break; } } if(flag == true){ System.out.println("找到了!"); } else{ System.out.println("没找到!"); } } }
五.数组插入算法
import java.util.Scanner; public class demo{ public static void main(String[] args){ //数组插入算法 Scanner data = new Scanner(System.in); int[] arr = {2,3,4,5,6,7}; //长度为6 System.out.println("请输入你要插入的数值:"); int num=data.nextInt(); //获取输入的数值赋值给num arr[arr.length-1] = num; //把num插入到最后 for(int i=arr.length-1;i>0;i--){ //从后到前遍历 if(arr[i]<arr[i-1]){ //如果前一个大于后一个 int t = arr[i]; //交换前后 arr[i] = arr[i-1]; arr[i-1] = t; } else{ //否则跳出循环 break; } } for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } }
六.数组冒泡排序
public class demo{ public static void main(String[] args){ //数组冒泡排序 int arr[] = new int[]{12,5,18,10,11,17}; //长度6 for(int j=0;j<=arr.length-1;j++){ //循环 for(int i=0;i<arr.length-1;i++){//主要将大的向后移动 if(arr[i]>arr[i+1]){ int t = arr[i]; arr[i] = arr[i+1]; arr[i+1] = t; } } } for(int i=0;i<arr.length;i++){ //输出 System.out.println(arr[i]); } } }
七.选择排序原理
public class demo{ public static void main(String[] args){ //选择排序 (打擂台) int []arr = new int[]{9,8,7,6,5,4,3,2,1}; int replace = 0; int bj = 0; for(int i=0;i<arr.length-1;i++){ //循环次数 for(int j=i+1;j<arr.length;j++){//每次循环比较的个数 if(arr[i] > arr[j]){ int t = arr[i]; arr[i] = arr[j]; arr[j] = t; replace++; //交换次数 } //比较次数 bj++; } } for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } System.out.println("交换次数:" + replace); System.out.println("比较次数:" + bj); } }
M54