1、数组

数组是一种数据类型,属于引用数据类型,存储相同数类型的一组数据。

 1 public class MyTest02 {
 2     public static void main(String[] args) {
 3         //数组定义语法    数据类型[] 数组名
 4         int[] a;
 5         //分配空间:告诉系统,当前数组存储多个元素
 6         //new:Java关键字,给引用数据类型变量分配内存空间
 7         //new就是在堆中分配若干个连续的可用空间,赋默认值:int-0,double-0.0,boolean-false
 8         a=new int[5];
 9         //数组元素通过下标访问,第一个元素的下标是0
10         System.out.println(a[0]);
11         System.out.println(a[1]);
12         System.out.println(a[2]);
13         System.out.println(a[3]);
14         System.out.println(a[4]);
15         //数组使用不要超出下标,数组越界异常
16         //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
17         System.out.println(a[5]);
18     }
19 }

 

 引用类型和基本类型的区别

内存空间分配方式不同

赋值方式不同

 遍历

 foreach增强语句,注意一点就行,只是把元素取出来赋值(是在宅里面改变),并不会改变堆里面元素的值,所以foreach语句只用来进行遍历

数组扩容

就是用把要扩容的数组赋值给另一个开辟空间大的数组,暂时是这样

 1 public static void main(String[] args) {
 2         int[] a=new int[]{1,2,3};
 3         int[] b=new int[10];
 4         for (int i = 0; i < a.length; i++) {
 5             b[i]=a[i];
 6         }
 7         a=b;
 8         for (int i:a){
 9             System.out.print(i+"\t");
10         }
11     }

 

 数组反转

 1 public static void main(String[] args) {
 2         int[] a={1,2,3,4};
 3 //        反转前
 4         System.out.println("反转前:");
 5         for (int i = 0; i < a.length; i++) {
 6             System.out.print(a[i]+"\t");
 7         }
 8 //        反转后
 9         System.out.println("反转后:");
10         int temp=0;
11         for (int i = 0; i < a.length/2; i++) {
12             temp=a[i];
13             a[i]=a[a.length-1-i];
14             a[a.length-1-i]=temp;
15         }
16         for (int i = 0; i < a.length; i++) {
17             System.out.print(a[i]+"\t");
18         }
19     }

 

 数组添加

 1 package com.Oct25;
 2 
 3 import java.util.Scanner;
 4 
 5 //添加数组元素
 6 public class MyTest06 {
 7     public static void main(String[] args) {
 8         System.out.println("请输入添加的值:");
 9         Scanner scanner = new Scanner(System.in);
10         int num = scanner.nextInt();
11 //        定义数组存放成绩,一些成绩已经有了,-1代表还没有填入成绩的空值
12         int[] score= {12,34,53};
13 //        思路:添加元素到-1,但必须是第一个-1的位置
14 //        所有应该查找第一个-1元素所在的位置
15         int index=-1;
16         for (int i = 0; i < score.length; i++) {
17             if (score[i]==-1){
18                 index=i;
19                 break;
20             }
21         }
22         if (index!=-1){
23             score[index]=num;
24             System.out.println("添加成功");
25         }else {
26             System.out.println("没有空间再给你添加了");
27         }
28         for (int i = 0; i < score.length; i++) {
29             if (score[i]==-1){
30                 break;
31             }
32 
33             System.out.print(score[i]+"\t");
34         }
35 
36     }
37 }

 

数组删除

 1 package com.Oct25;
 2 
 3 import java.util.Scanner;
 4 
 5 //删除数组
 6 public class MyTest07 {
 7     public static void main(String[] args) {
 8         int[] a= {1,3,2,4,5,-1,-1};
 9         int index=-1;
10         Scanner scanner = new Scanner(System.in);
11         System.out.println("请输入要删除的元素:");
12         int num = scanner.nextInt();
13         for (int i = 0; i < a.length; i++) {
14             if (a[i]==num){
15                 index=i;
16                 break;
17             }
18         }
19         if (index!=-1){
20             for (int i =index+1; i < a.length; i++) {
21                 a[i-1]=a[i];
22             }
23         }else {
24             System.out.println("没有要删除的元素");
25         }
26 
27         for (int i = 0; i < a.length; i++) {
28             if (a[i]==-1){
29                 break;
30             }
31             System.out.println(a[i]);
32         }
33     }
34 }

 

 Arrays工具类

JDK提供了一些操作数组的方法

Arrays.toString:将数组转换成字符串的形式

 

二维数组

含义:可以看成一个一维数组,里面又存储一个一维数组

int[ ][ ] a=new int[ 2][ 3]  两行三列的数组

就这样子存储的:{ {1,3,2} , {2,5,6} }

 

 

 

 

posted @ 2021-10-30 13:42  金涛骇浪  阅读(96)  评论(0编辑  收藏  举报