转载

重新学 Java 系列:数组

这个是一个系列阅读,关于为什么重新学习,我在文章 重新学 Java 系列:新系列、新开始 ( https://wxnacy.com/2018/12/29/java-renew-why/ ) 中有提到,这个系列是在有 Java 基础的情况下,重新学习讨论一下以前可能忽略掉,或者没理解的知识细节,我想要永远在学习的路上。

已经习惯了 Python 的列表对象,再回来看 Java 的数组和列表很是不适,这种不适已经上升到了生理反应,我为什么要重新学 Java?我是谁?我在哪?

Java 中数组是用来存储 固定大小 同类型 元素。

声明

int 类型数组有两种声明方式 int[] varName 或者 int varName[] ,一般建议使用第一种声明方式。后者来源于 c/c++ ,是为了让 c/c++ 程序员快速理解 Java。

定义

有三种定义方式

静态初始化

int[] a = new int[]{0, 1, 2};

静态初始化简化方式

int[] b = {0, 1, 2};

静态初始化不能指定元素个数,或者说初始化后元素个数已经固定了,不需要指定。

动态初始化

int[] c = new int[3];
c[0] = 1

动态初始化后,数组每个元素会赋值当前类型的默认值,分别如下所以:

类型 默认值
整数类型(byte、short、int、long) 0
浮点类型(float、double) 0.0
字符类型(char) ‘/u0000’
布尔类型(boolean) false
引用类型(类、接口、数组) null

遍历

两种方式 forforEach

for

for(int i = 0; i < nums.length; i++){
    System.out.println(nums[i]);
}

forEach

for ( int n: nums ) {
    System.out.println(n);
}

方法

数组本身不提供方法,只有一个变量 length 用来获取数组的大小。

int n = nums.length

记得当年刚开始学习 Java 时,总是跟列表的 size() 方法搞混,不知道什么时候用 length ,什么时候用 size() 。现在看来只需要记住,数组的大小是不可变的,所以使用变量 length 即可获取数组大小。而列表是可变的,所以需要使用方法 size() 动态获取大小。

java.util.Arrays 类提供了操作数组的方法,都是静态方法。

方法 描述
public static void sort(Object[] a) 排序数组,升序
public static int binarySearch(Object[] a, Object key) 使用二分搜索来搜索给定元素,数组需要先排序,返回索引
public static boolean equals(Object[] a, Object[] a2) 比较数组是否相同,返回 boolean 类型
public static void fill(Object[] a, Object val) 给数组的所有元素指定某个值

参考

  • Java 数组

最近更新

异或运算及应用

Python list 对象一些方法的时间复杂度

Javascript 跳转其他页面

Git blame 查看代码是谁写的

PySpider 安装的坑:不支持 3.7 版本

PySpider 安装的坑:PyCurl 出错

Vim 执行 Shell 命令(3)

Python 在 Mac 系统中从剪切板中获取图片

Python 使用 memory_profiler 分析程序内存占用情况

Linux time 命令统计脚本耗时

最近热读

Go 判断数组中是否包含某个 item

办理北京工作居住证的一些细节

Vim 高级功能 vimgrep 全局搜索文件

Go 语法错误:Non-declaration statement outside function body

Go 结构体、数组、字典和 json 字符串的相互转换

扫码关注公众号,或搜索公众号“温欣爸比” 及时获取我的最新文章 重新学 Java 系列:数组

原文  http://wxnacy.com/2019/05/29/java-array/
正文到此结束
Loading...