•概念

  其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。

  数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配;

  而数组的定义语法有两种:

  • 静态初始化
  • 动态初始化

静态初始化

  • 简化格式

    • 数据类型 数组名称 = {值, 值,…}
    • int[] x = {0,1,2,3};
  • 完整格式

    • 数据类型 数组名称 = new 数据类型[] {值, 值,…}
    • int[] y = new int[]{0,1,2,3};

  在开发之中,对于静态数组的初始化强烈建议使用完整语法模式;

  这样可以轻松地使用匿名数组这一概念。

public class TestArray {

    public static void main(String[] args) {
System.out.println(new int[] {1,2,3}.length);
}
}

  使用静态方式定义数组的时候,最好写上完整格式。

动态初始化

  • 数据类型[ ] 数组名称 = new 数据类型[长度]

    • int[] a = new int[10];//动态初始化数组,先分配空间

  需要注意的是数组属于引用数据类型,所以在数组使用之前一定要开辟空间(实例化);

  如果使用了没有开辟空间的数组,则一定会出现  NullPointerException  异常信息;

•数组中的简单操作

  • 数组的访问通过索引完成,即 a[0],a[1],.......,a[9]

  • 通过  a.length 获取数组 a 的长度

•arraycopy

参数

   System.arraycopy(src, srcPos, dest, destPos, length);

  • src 表示源数组

  • srcPos 表示源数组中拷贝元素的起始位置

  • dest 表示目标数组

  • destPos 表示拷贝到目标数组的起始位置

  • length 表示拷贝元素的个数

  需要注意的是在进行数组拷贝时,目标数组必须有足够的空间来存放拷贝的元素,否则就会发生下标越界异常。

public class TestArray {

    public static void main(String[] args) {

        int[] a = {0,1,2,3,4};
int[] b = new int[10];
for(int i = 0;i < b.length;i++)
b[i] = -1; System.arraycopy(a, 0, b, 1, a.length); for(int x : b)
System.out.print(x+" ");
}
}

输出结果

  

数组填充

  java 中的数组初始值都为零,若想要快速填充一个其他值,可以用  Arrays.fill  方法;

  但只能填充一个一维数组,多维数组得用循环。

   int[] array = new int[10];

  • Arrays.fill(arrayname,value)

    • Arrays.fill(array,50);//array[0,...,9] = 50; 
  • Arrays.fill(arrayname,a,b,value)

    • 填充区间 [a,b)
    • Arrays.fill(array,2,5,50);//array[2,..,4] = 50;
  • 填充多维数组

  • public class TestArray {
    
        public static void main(String[] args) {
    
            int array[][]=new int[10][10];
    
            for(int i=0;i < 10;++i)
    Arrays.fill(array[i],50);
    }
    }

Java学习之数组的简单用法的更多相关文章

  1. Java的稀疏数组的简单代码实现

    目录 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 二.稀疏数组的Java代码实现思路 三.稀释数组的Java代码实现 四.结语 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 ...

  2. JAVA学习笔记 (okHttp3的用法)

    最近的项目中有个接口是返回文件流数据,根据我们这边一个验签的插件,我发现里面有okHttpClient提供了Call.Factory,所以就学习了下okHttp3的用法. 1.概述 okhttp是一个 ...

  3. JAVA学习笔记--数组初始化

    JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...

  4. Java学习之路:ArrayList用法

    1.什么是ArrayList     ArrayList是一个动态数组传奇,使用MSDN声明.那是,Array复杂的版本号,它具有以下优点,例如: 动态的添加和降低元素 实现了ICollection和 ...

  5. java学习之数组(二)

    在上一节中我们讲到了数组的概念,定义,以及在内存当中的表现形式.那么这里我们来说一下,数组的另一种定义方式. 在上一篇当中我们规定是这个样子定义数组的, class ArrDemo { public ...

  6. java学习之数组(一)【内存】

    在java语言当中,为了更方便多个数据的管理,这里提供数组. 比如说,现在我们有一组数据,7,8,9,9,为了保存这四个数据,我们分别要定义变量来保存,少了还好说.但是假如,有100多个数据呢,我们一 ...

  7. java学习笔记 --- 数组

    一.Java的内存分配   A:栈内存: 存储局部变量,只要是在方法中定义的变量都是局部变量.一旦变量的生命周期结束该变量就被释放.   B:堆内存: 存储所有new出来的,及实体(对象),每一个实体 ...

  8. java学习之—实现一个简单的ArrayList

    package thread1; /** * 实现一个简单的ArrayList * * @Title: uminton */ public class SimpleArrayList<T> ...

  9. Java内置锁和简单用法

    一.简单的锁知识 关于内置锁 Java具有通过synchronized关键字实现的内置锁,内置锁获得锁和释放锁是隐式的,进入synchronized修饰的代码就获得锁,走出相应的代码就释放锁. jav ...

随机推荐

  1. Android 如何使用 WebView 加载 HTML 字符串和处理转译字符

    Android 如何使用 WebView 加载 HTML 字符串和处理转译字符 css bug 在 WebView 中编译 Web 应用 如果您希望在客户端应用中提供 Web 应用(或只是网页),则可 ...

  2. 如何使用 js 实现一个 throttle 函数

    如何使用 js 实现一个 throttle 函数 原理 实现方式 "use strict"; /** * * @author xgqfrms * @license MIT * @c ...

  3. how to share UI components

    how to share UI components The shared component cloud · Bit https://bit.dev/ A better way to build w ...

  4. Captain Technology INC浅谈新能源汽车的未来

    近日全世界上最大的资管公司贝莱德向位于的英国电动汽车初创公司Arrival投资1.18亿美元,且该公司已有投资者亚马逊和美国第二大汽车制造商福特汽车参投.中国最知名的电动车公司蔚来股价单日大涨22%, ...

  5. 谈谈 JS 垃圾回收机制

    谈谈 JS 垃圾回收机制 JS内存泄漏与垃圾回收机制 https://javascript.info/garbage-collection

  6. 1102 Invert a Binary Tree——PAT甲级真题

    1102 Invert a Binary Tree The following is from Max Howell @twitter: Google: 90% of our engineers us ...

  7. 必知必会之Java注解

    必知必会之Java注解 目录 不定期更新中-- 元注解 @Documented @Indexed @Retention @Target 常用注解 @Deprecated @FunctionalInte ...

  8. tomcat部署项目问题

    tomcat部署项目的时候,报内存溢出,一种解决方案是直接添加内存,网上都有教程,如下: Windows下,在文件/bin/catalina.bat,Linux下,在文件/bin/catalina.s ...

  9. Docker 一键安装及Docker管理面板Portainer中文汉化

       前言 Docker接触了一段时间了,批量操作过程中感觉太繁琐,所以找到了好评率比较高的Portainer面板,使用后感觉的确不错所以准备拿出来精力来做个汉化版,过程中发现词条非常多,所以暂时先汉 ...

  10. HDOJ-2896(AC自动机+文本串中出现了哪几个模板串)

    病毒侵袭 HDOJ-2896 主要使用AC自动机解决,其次在query函数中改变一下,用来记录每个模板串出现的次数,还有insert函数中记录模板串的编号 需要注意最好使用结构体,而且不能一次性使用m ...