一.数组的特点
1.存储一组相同数据类型的数据
2.长度一旦声明就固定
3.每个元素的内存地址是连续的
二.数组的使用步骤
1.声明:数据类型[] 数组名; double[] nums;
2.创建数组:nums = new double[10];分配连续的内存空间。声明和创建可以写成一句代码
3.访问数组的元素:数组名[下标];下标是从0开始。 double[2] = 3.14;
4.数组名.length可以获取数组的物理长度
三.数组的声明和初始化的方式
1.int[] nums = {32,45,76,98,100};
2.int[] nums = new int[]{1,2,3,4,5,6,7};
四.数组的排序
import java.util.Arrays;
int[] nums = {12,43,55,8,123,90,78};
Arrays.sort(nums);//工具自动排序
五.例子
package com.demo1027; import java.util.Arrays; import java.util.Scanner; public class Demo { //数组的声明和使用 // public static void main(String[] args) { // int[] nums;//声明数组 // nums = new int[5]; // //使用数组 无非就是1.读取数组中的数据 2.往数组中写入数据 // nums[1]=100; // System.out.println(nums[0]); // System.out.println("nums的长度为:"+nums.length); // } //练习1 要求给数组0-4的下标赋值 3.14 5 6.6 89 100.11 // public static void main(String[] args) { // double[] nums = new double[5]; // nums[0] = 3.14; // nums[1] = 5; // nums[2] = 6.6; // nums[3] = 89; // nums[4] = 100.11; // // System.out.println(nums[0]+nums[1]+nums[2]+nums[3]+nums[4]); // } //练习2声明一个double类型的数组 长度5 //要求用循环来接受键盘输入的5个数字 //求5个数的平均值? // public static void main(String[] args) { // Scanner sc = new Scanner(System.in); // double[] nums = new double[5]; // for(int i=0;i<nums.length;i++){ // System.out.println("请输入第"+(i+1)+"个数字:"); // nums[i] = sc.nextDouble(); // } // double sum = 0; // for (int i = 0; i < nums.length; i++) { // sum+=nums[i]; // } // System.out.println("平均数是:"+sum/nums.length); // } //3.声明一个整型数组,将其初始化为以下数据:12,43,55,8,123,90,78 //要求:a.用户随便输入一个数,告诉用户该数在不在数组中,如果在告诉用户在哪个位置上? // b.求数组中最大值是多少? // public static void main(String[] args) { // int[] nums = {-12,-43,-55,-8,-123,-90,-78}; // int max = nums[0];//擂台 // Scanner sc = new Scanner(System.in); // System.out.println("输入一个数:"); // int num = sc.nextInt(); // for (int i = 0; i < nums.length; i++) { // if(num==nums[i]){ // System.out.println("这个数在数组中第"+(i+1)+"位"); // break; // } // // if(i==nums.length-1){ // System.out.println("没有这个数"); // } // } // // for (int i = 0; i < nums.length; i++) { // if(nums[i]>max){ // max = nums[i]; // } // } // System.out.println("数组中的最大值是:"+max); // } //4.插入算法
//数组的插入算法:初始化一个数组,数据位为:12,43,55,8,123,90,78
//要求用户输入一个数字,和插入的位置,将该数字插入到数组中,其他元素的位置保持原来的顺序
// public static void main(String[] args) { // //1.声明并初始化原数组 // int[] old = {12,43,55,8,123,90,78}; // for (int i = 0; i < old.length; i++) { // System.out.print(old[i]+" "); // } // //2.接受用户输入 // Scanner sc = new Scanner(System.in); // System.out.println("请输入要插入的数字:"); // int num = sc.nextInt(); // System.out.println("请输入要插入的位置:"); // int index = sc.nextInt(); // //3.创建新数组,其长度为原数组长度加一 // int[] newNums = new int[old.length+1]; // //4.我们将原数组中的数据,对号入座到新数组中 // for (int i = 0; i < old.length; i++) { // if(i<index-1){ // newNums[i] = old[i]; // }else{ // newNums[i+1] = old[i]; // } // } // //5。将用户输入的数字,对号入座到新数组中 // newNums[index-1] = num; // //6.输出新数组中所有数据 // for (int i = 0; i < newNums.length; i++) { // System.out.print(newNums[i]+" "); // } // } //用java自带的工具给数组排序 public static void main(String[] args) { int[] nums = {12,43,55,8,123,90,78}; Arrays.sort(nums);//工具自动排序 for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]+" "); } } }
/** * 数组 * 1.初始化一个整型数组,12,43,55,8,123,90,78 将其倒序排序输出; * 2:输出最低分要求:输入十个数,将最低分输出; * 3:输入十个数,将小于0的数变为0,排序输出这十个数 * */ package class1030; import java.util.Arrays; import java.util.Scanner; public class Test01 { public static void main(String[] args){ //1.初始化一个整型数组,12,43,55,8,123,90,78 将其倒序排序输出; /* int a[]={12,43,55,8,123,90,78}; Arrays.sort(a); for(int i=a.length-1;i>=0;i--) { System.out.print(a[i]+" "); } */ //2:输出最低分要求:输入十个数,将最低分输出; /* double b[]=new double[10]; double nums; Scanner sc=new Scanner(System.in); for(int i=0;i<b.length;i++) { System.out.println("请输入第"+(i+1)+"个数"); b[i]=sc.nextDouble(); } nums=b[0]; for(int i=0;i<b.length;i++) { System.out.print(b[i]+" "); if(nums>b[i]) { nums=b[i]; } } System.out.println("最小的数是"+nums); */ //3:输入十个数将其排序,并将小于0的数变为0,输出 /* int arr[]=new int[10]; Scanner sc=new Scanner(System.in); for(int i=0;i<arr.length;i++) { System.out.println("请输入第"+(i+1)+"个数"); arr[i]=sc.nextInt(); if(arr[i]<0){ arr[i]=0; } } Arrays.sort(arr); for(int j=0;j<arr.length;j++) { System.out.print(arr[j]+" "); } */ //4:{123,43,65,23,11,3,6,89}把这个数组排序, //然后用户随便输入一个数字,将该数字插入到数组,并且仍保持数组有序, //要求用插入算法 int arr[]={123,43,65,23,11,3,6,89}; Arrays.sort(arr); for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); } Scanner sc=new Scanner(System.in); System.out.println("请输入一个数字"); int num=sc.nextInt(); int index=0; for(int i=0;i<arr.length;i++) { if(arr[i]>num) { index=i; break; } } int arr2[]=new int[arr.length+1]; for(int i=0;i<arr.length;i++) { if(i<index) { arr2[i]=arr[i]; }else{ arr2[i+1]=arr[i]; } } arr2[index]=num; for(int i=0;i<arr2.length;i++) { System.out.print(arr2[i]+" "); } } }