<span class="pun">数组是一种数据类型,属于引用数据类型,存储相同数类型的一组数据。</span>
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} }
Original: https://www.cnblogs.com/hxbhxb/p/15483851.html
Author: 金涛骇浪
Title: 1、数组
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/575234/
转载文章受原作者版权保护。转载请注明原作者出处!