一.数组的特点
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]+" ");
}
}
}
原文:https://www.cnblogs.com/wlxslsb/p/10353177.html