二. 数组的使用步骤
1. 声明: 数据类型 [] 数组名; double[] nums;
2. 创建数组: nums = new double[10]; 分配连续的内存空间. 声明和创建可以写成一句代码
3. 访问数组的元素: 数组名 [下标]; 下标是从 0 开始. double[2] = 3.14;
4. 数组名. length 可以获取数组的物理长度
三. 数组的声明和初始化的方式
- int[] nums = {
- 32,45,76,98,100
- };
- 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]+" ");
- }
- }
- }
5.1 数组
来源: http://www.bubuko.com/infodetail-2945668.html