一维数组

  • java中的数组是引用类型,分配在堆空间上。

  • 一维数组的声明方式:

    type var[];
    type[] var;
  • java中声明数组时不能指定其长度,如下,因为java中的数组是分配在堆空间的,需要new出来。

int[] a = new int[5];

动态初始化

  • 数组定义与为数组元素分配空间和赋值的操作分开进行。
int a[];
a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;

静态初始化

  • 在定义数组的时候就为数组元素分配空间并赋值。
int a[] = {1, 2, 3};
Date days[] = {
new Date(1, 4, 2004);
new Date(2, 4, 2004);
new Date(3, 4, 2004);
}

数组元素的默认初始化

  • 数组是引用类型,他的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化了。
int a[] = new int[3];
Date days = new Date[3];
// 则a中元素值为0;days中的元素值为null

二维数组

  • java中多维数组的声明和初始化按照从多维到高维的顺序进行。
// 例如
int a[][] = new int [3][];
a[0] = new int[3];
a[1] = new int[4];
a[2] = new int[5];
// int t[][] = new int[][3]; // 错误

二维数组初始化

  • 静态初始化
int A[][] = {{1,2}, {3,4}, {5,6,7}};
// 错误 int B[3][2] = {{1,2}, {3,4}, {5,6}};
// 错误 int B[][2] = {{1,2}, {3,4}, {5,6}};
// 错误 int B[3][] = {{1,2}, {3,4}, {5,6}};
  • 动态初始化
int a[][] = new int[2][3];
// 或者 int b[][] = new int[2][];
b[0] = new int[3];
b[1] = new int[4];

数组的拷贝

  • 使用 java.lang.System 类的静态方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  • 可以用于数组 src 从第 srcPos 项元素开始的 length 个元素拷贝到目标数组dest 的从 destPos 项开始的 length 个位置。

  • 如果源数据数目超过目标数组边界会抛出 IndexOutOfBoundsException 异常。

public class TestArrayCopy {
public static void main(String args[]) {
String[] s =
{"Mircosoft","IBM","Sun","Oracle","Apple"};
String[] sBak = new String[6];
System.arraycopy(s,0,sBak,0,s.length); for(int i=0;i<sBak.length;i++){
System.out.print(sBak[i]+" ");
} System.out.println();
int[][] intArray = {{1,2},{1,2,3},{3,4}};
int[][] intArrayBak = new int[3][];
System.arraycopy
(intArray,0,intArrayBak,0,intArray.length);
intArrayBak[2][1] = 100; for(int i = 0;i<intArray.length;i++){
for(int j =0;j<intArray[i].length;j++){
System.out.print(intArray[i][j]+" ");
}
System.out.println();
}
}
}

05 - JavaSE之数组的更多相关文章

  1. Java-Runoob-高级教程-实例-数组:05. Java 实例 – 数组输出

    ylbtech-Java-Runoob-高级教程-实例-数组:05. Java 实例 – 数组输出 1.返回顶部 1. Java 实例 - 数组输出  Java 实例 以下实例演示了如何通过循环输出数 ...

  2. 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现

    073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...

  3. 「JavaSE 重新出发」05.02 泛型数组列表、包装类

    泛型数组列表 ArrayList 是一个采用类型参数(type parameter)的泛型类(generic class). java ArrayList<Employee> staff ...

  4. 【C语言学习】-05 二维数组、字符串数组、多维数组

    ⼆二维数组.字符串数组.多维数组

  5. 05 方法与数组笔记【JAVA】

    ---恢复内容开始--- 1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类 ...

  6. java学习第05天(数组常见操作、数组中的数组)

    (4)数组常见操作 a.遍历取值 class ArrayDemo3 { public static void main(String[] args) { //System.out.println(&q ...

  7. Java 基础入门随笔(6) JavaSE版——数组操作

    1.数组 概念:同一种类型数据的集合.其实就是数组就是一个容器. 好处:可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式: ①. 元素类型[] 数组名 = new 元素类型[元素个数或数组 ...

  8. JAVASE(八) 数组: 一维数组、二维数组、动态数组、静态数组

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.一维数组 1.1 数组的声明和初始化声明方式: String str[]; //不建议使用 Stri ...

  9. JavaSE学习总结第06天_Java语言基础2 & 面向对象1

      06.01 二维数组概述和格式1的讲解 二维数组概述:二维数组其实就是一个元素为一维数组的数组 格式1:数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...

随机推荐

  1. java http大文件断点续传上传

    因为需要研究下断点上传的问题.找了很久终于找到一个比较好的项目. 效果: 上传中,显示进度,时间,百分比. 点击[Pause]暂停,点击[Resume]继续. 2,代码分析 项目进行了封装使用最简单的 ...

  2. 查看Redis集群主从对应关系工具

    工具的作用: 1)比"cluster nodes"更为直观的显示结果 2)指出落在同一个IP上的master 3)指出落在同一个IP上的master和slave对 运行效果图: 源 ...

  3. python基础回顾

    1.第二个缺点就是代码不能加密.如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows 上常见的xxx.exe ...

  4. MapGis如何实现WebGIS分布式大数据存储的

    作为解决方案厂商,MapGis是如何实现分布式大数据存储的呢? MapGIS在传统关系型空间数据库引擎MapGIS SDE的基础之上,针对地理大数据的特点,构建了MapGIS DataStore分布式 ...

  5. day22(过滤器Filter)

    过滤器 生命周期:初始化 -----过滤-------销毁 作用:过滤url ,特定字符 创建方式:实现一个接口继承Filter package com.baidu.filter; import ja ...

  6. kepware http接口 OCaml

    读取某变量的值 open Cohttp_lwt_unix open Cohttp open Lwt let uri = Uri.of_string "http://127.0.0.1:393 ...

  7. noip第6课资料

  8. hdu 5083 有坑+字符串模拟水题

    http://acm.hdu.edu.cn/showproblem.php?pid=5083 机器码和操作互相转化 注意SET还要判断末5位不为0输出Error #pragma comment(lin ...

  9. LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址

    在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址和头标识目的地址. (一)主要的步骤: 在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取 ...

  10. WPF点滴(3) 行为-Behavior

    为了定制个性化的用户界面,我们通常会借助于WPF强大的样式(style),修改控件属性,重写控件模板(template),样式帮助我们构建一致的个性化控件.通过样式可以调整界面的显示效果,这只是界面构 ...