返回顶部
首页 > 资讯 > 后端开发 > Python >java中的数组初始化赋初值方式
  • 874
分享到

java中的数组初始化赋初值方式

2024-04-02 19:04:59 874人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录java数组初始化赋初值方法一方法二方法三数组互相赋值方式使用for循环使用Object的clone()使用System的静态方法arraycopy()java数组初始化赋初值

java数组初始化赋初值

方法一

int[] vis1;//声明未初始化 
    vis1=new int[100];//定义占用空间大小(100个int)
    for(int i=1;i<=5;i++)
    {
        vis1[i]=i;//进行赋值
    }
    for(int i=1;i<100;i++)
    {
        System.out.print(vis1[i]+" ");//输出,未赋值的为0
    }
    System.out.println(vis1.length);//输出vis1数组的长度

方法二

    int[] vis2={1,2,3,4,5};
    for(int i=0;i<5;i++)
    {
        System.out.print(vis2[i]);
    }
    System.out.println(vis2.length);

方法三

    int[] vis3=new int[]{1,2,3,4,5,6};
    System.out.println(vis3.length);

数组互相赋值方式

本文探讨Java中数组中的赋值问题。在探讨这个问题之前必须先弄懂一件事,Java中的数组到底是什么东西?是类,是对象,还是什么其他奇奇怪怪的东西。答案是:Java中的数组本质上是对象。但是这个对象不是通过某个类实例化来的,而是JVM创建的,这也就不难解释对于一个数组对象arr,我们可以直接通过arr.length访问数组的长度。

现在我们知道了Java中数组本质上是对象,那么我们来看一下这样的代码合理不合理:

int[] a = {1,2,3};
int[] b = new int[3];
b = a;
for(int i = 0; i < a.length; i++)
a[i] = 0;

我们本来的想法是把a数组的值赋值给b,然后将a数组清零,但是我们会发现a,b数组都被清零了。

既然数组本质是对象,那么我们来分析一下这两句代码在Java内存模型中发生了什么。

int[] a = {1,2,3};的时候,堆中会生成一个对应的对象,a会指向这个对象,然后int[] b = new int[3];的时候,b也会指向这个对象。那么比如我们在对a[0]进行修改的时候,实际上是对堆中对象做出了修改。b数组仍然是指向这个堆中对象的,当然b数组的值也改变了。

说到这里已经显而易见了,这样实际上不太合理,比较两个引用都是指向同一个堆中对象,其中一个修改必然会导致另一个的修改。

那么数组的赋值究竟应该怎么做呢?

使用for循环

int[] a = {1,2,3};
int[] b = new int[3];
for(int i = 0; i<a.length; i++)
    b[i] = a[i];

这样可以实现赋值操作,而且灵活性不错,但是效率是个问题。

使用Object的clone()

既然数组本质是对象,那么他就有clone()方法。我们可以使用clone()方法进行复制:

int[] a={1,2,3};
int[] b=(int[]) a.clone();//别忘了强制类型转换

使用System的静态方法arraycopy()

System提供了一个静态方法arraycopy(),原型如下:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  • src:源数组
  • srcPos:源数组要复制的起始位置
  • dest:目的数组
  • destPos:目的数组放置的起始位置
  • length:复制的长度

我们可以用它来进行数组之间的复制:

int[] a ={1,2,3};
int[] b = new int[3];
System.arraycopy(a,0,b,0,3);

这个方法效率很高,而且具有一定的灵活性。许多基于数组实现的Java的集合类底层在数组复制的时候都是使用这个方法。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: java中的数组初始化赋初值方式

本文链接: https://lsjlt.com/news/148521.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java中的数组初始化赋初值方式
    目录java数组初始化赋初值方法一方法二方法三数组互相赋值方式使用for循环使用Object的clone()使用System的静态方法arraycopy()java数组初始化赋初值 ...
    99+
    2024-04-02
  • java初始化数组赋值的方法是什么
    在Java中,可以使用以下方法来初始化数组并赋值: 直接在定义数组时赋值: int[] numbers = {1, 2, 3, ...
    99+
    2024-03-14
    java
  • java初始化数组赋值要注意什么
    在Java中,初始化数组并赋值时需要注意以下几点: 确定数组的类型和大小:首先要确定所需数组的类型和大小。数组的大小可以是固定的...
    99+
    2023-10-27
    java
  • Java中Map集合初始化并赋值
    Java中Map集合初始化并赋值的几种方式: package com.itstone.mok.hutool;import com.google.common.collect.ImmutableMap;import org.junit.Tes...
    99+
    2023-08-17
    java junit 开发语言
  • java怎么初始化map并赋值
    Java中初始化Map并赋值有多种方式,具体取决于使用的Map实现类。以下是几种常用的方式:1. 使用HashMap初始化并赋值:`...
    99+
    2023-08-24
    java map
  • java数组初始化方式有哪些
    java中数组初始化的方式有:1.静态初始化,由程序指定数组元素初始值,由系统指定数组长度;2.动态初始化,由程序指定数组长度,由系统指定数组元素默认值。java中数组初始化的方式有以下两种静态初始化静态初始化是指初始化时由程序指定每个数组...
    99+
    2024-04-02
  • java数组初始化的方式有哪些
    Java数组可以通过以下几种方式进行初始化:1. 静态初始化:在声明数组的同时为数组元素赋初值。```javaint[] arr =...
    99+
    2023-09-09
    java
  • 数组的三种初始化方式
    1. 直接初始化:在声明数组的同时给出初始值,例如:`int[] arr = {1, 2, 3, 4, 5};` 这种方式适用于已知...
    99+
    2023-09-01
    数组
  • Java中怎样初始化数组
    本篇文章给大家分享的是有关Java中怎样初始化数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一个数组的示例让我们在 Java 中创建一个长度为 10 的整型数组:int[]...
    99+
    2023-06-16
  • java声明、初始化与赋值的方法是什么
    在Java中,声明、初始化和赋值是分开进行的。声明变量是指在程序中声明一个变量的类型和名称,例如:int number;初始化变量是...
    99+
    2023-09-15
    java
  • java怎么给数组赋初值
    Java中可以使用以下几种方式给数组赋初值:1. 使用静态初始化:在声明数组时直接给出数组的元素值。```javaint[] arr...
    99+
    2023-08-18
    java
  • Java之int数组声明与初始化方式
    目录Java int数组声明与初始化java数组 动态初始化和静态初始化1.数组是指有序的元素序列2.数组的初始化3.解析含义4.两种常见的初始化方式5.动态初始化数组的格式6.使用...
    99+
    2023-02-28
    Java int数组声明 Java int数组初始化 int数组声明与初始化
  • java二维数组初始化的方式有哪些
    Java中二维数组的初始化方式有以下几种:1. 静态初始化:直接指定数组元素的值。```javaint[][] arr = {{1,...
    99+
    2023-09-27
    java
  • java数组如何初始化?
    Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值: ● 基本数据类型的整数类型(byte、short...
    99+
    2018-03-13
    java教程 java 数组 初始化
  • java 如何初始化数组
    一、什么是初始化在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。所谓数组初始化就...
    99+
    2018-10-10
    java入门 java 初始化 数组
  • java数组如何初始化
    Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:基本数据类型的整数类型(byte、short、in...
    99+
    2020-04-23
    java入门 java 数组 初始化
  • java如何初始化数组
    什么是初始化在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。 (推荐学习:j...
    99+
    2017-08-16
    java教程 java
  • java数组初始化的示例
    小编给大家分享一下java数组初始化的示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应...
    99+
    2023-06-14
  • 怎么在java中初始化数组
    这篇文章给大家介绍怎么在java中初始化数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企...
    99+
    2023-06-14
  • c语言多维数组初始化和赋值的方法是什么
    在C语言中,多维数组的初始化和赋值可以使用以下方法: 静态初始化:在定义数组时,直接给出各个元素的初始值。 int arr[3]...
    99+
    2023-10-23
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作