数组的学习

y12123 / 2023-08-23 / 原文

1.数组的定义:

int[ ] arr=new int[ ]{1,2,3 };

简写为:

int[ ] arr={1,2,3}; 

2.数组地址值含义

直接打印数组代表地址值,其中

[ 代表数组的意思,

I 代表int类型数组,

@ 代表固定搭配分隔符,  

B6d3589才是其真正地址

 3.数组的动态初始化

int[ ] arr=new int[10];

在开辟空间后,还未被赋值的则会被默认赋予值,例如:int类型数组,默认值为0;

4.如何将一组数组顺序打乱?(觉得不是很满意,肯请指点,有没有只创建一组数组就可以完成)

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class Main {
 5     public static void main(String[] args) {
 6         int[] arr={1,2,3,4,5};  //一组为原数据   若在一组数组中操作可能会被打乱回去
 7         int[] arr1=new int[5];  //另一组为打乱后顺序
 8         List<Integer> list=new ArrayList();  //创建list集合用于生成不重复的随机数
 9         for (int i = 0; i < arr.length; i++) {
10             int a=(int)(Math.random()*5);
11             while (list.contains(a)){   //保证不重复
12                 a=(int)(Math.random()*5);
13             }
14             list.add(a);
15         }
16         for (int i=0; i < list.size(); i++) {
17             arr1[i]=arr[list.get(i)];
18             System.out.println(arr1[i]);
19         }
20     }
21 }

5.数组的内存分析

在java中,有栈内存和堆内存,

栈内存通俗的讲是用来执行方法的,

堆内存用来存储 new 出来的数据。

“ = ” 的意思是赋地址值的意思。将堆内存中数组的首地址值赋值给栈内存中的arr。

6.关于数组的数据共享

简单的数就是

 将arr1的地址值赋值给arr2,这样一来就可以共享数据,同时修改同步效果。