JAVA 给数组赋值

JAVA 给数组赋值,第1张

int[] b

int[] a ={1,2,3,4}

b=a

答:可以这样对数组进行赋值

      但是这种方式对数组进行赋值,  实际上是一种浅层复制.

 也就是说,b实际上就是a,它们的内存地址值都是一样的, 当a发生改变,那么b也会跟着改变 。

为了真正意义上实现赋值,那么我们应该对数组进行深层复制。

深层复制后,无论a怎么改变,都不会影响到b。

具体代码如下

package core.com

import java.util.Arrays

public class DemoCopy {

 public static void main(String[] args) {

  //---------浅层复制--------

  int[] a

  int[] b = {1,2,3,4}

  a=b//浅层复制. 当b改变的时候,a会跟着改变

  System.out.println(Arrays.toString(a))//输出数组a,[1,2,3,4]

  b[0] = 5//改变数组b , 数组a也会跟着改变

  System.out.println(Arrays.toString(a))//输出数组a,[5,2,3,4]

  System.out.println(a==b)//输出true  a就是b

  //-----------分割线--------

  //深层复制方法一:

  String[] c 

  String[] d = {"a","b","c"}

  c = new String[d.length] // 需要初始化数组长度

  for (int i = 0 i < d.length i++) {//循环复制,

   c[i] = d[i]

  }

  d[0]="y"//改变数组d, 不会影响c

  System.out.println(Arrays.toString(c))//

  System.out.println(c==d)

  

  //-------------分割线---------

  //深层复制方法二:

  int[] ary1

  int[] ary2 = {8,8,8}

  ary1 = new int[ary2.length]

  System.arraycopy(ary2, 0, ary1, 0, ary2.length)//调用函数进行深层复制

  ary2[0]=6//改变数组ary2,并不会影响ary1

  System.out.println(Arrays.toString(ary1))

  System.out.println(ary1==ary2)

 }

}

控制台输出

[1, 2, 3, 4]

[5, 2, 3, 4]

true

[a, b, c]

false

[8, 8, 8]

false

1、在 main 方法中,可以使用如下语句创建学生类的数组:

Student[] students = new Student[5]

其中 "Student" 是学生类的类名,5 是数组的长度。

2、使用 for 循环给数组赋值:

for (int i = 0i <students.lengthi++) {

students[i] = new Student()

students[i].setName("Student " + (i + 1))

students[i].setAge(20 + i)

}

在这个例子中,我们使用一个 for 循环遍历了整个 students 数组。每次循环迭代中,我们使用 "new Student()" 创建了一个新的 Student 对象,并将其赋值给当前循环迭代的数组元素。

3、遍历数组:

for (int i = 0i <students.lengthi++) {

System.out.println(students[i].getName() + "," + students[i].getAge())

}

这里我们使用另一个 for 循环遍历了整个 students 数组,并将每个学生的姓名和年龄打印出来

注意:上面的例子假设 Student 类有相应的 setName 和 setAge 方法,并且有 getName 和 getAge 方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/10048656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存