美文网首页
★14.数组

★14.数组

作者: iDragonfly | 来源:发表于2017-07-03 19:55 被阅读0次

关于数组

  • 数组有且只有length字段。
  • 基本类型数组直接存储数据,对象类型数组存储引用。
  • 方法可以返回数组而不需要担心内存泄露问题。

初始化

一维数组

A[] a = new A[4];  // 基本类型被被初始化为0,对象类型会被初始化为null
A[] b = {new A(), new A(), new A()};
A c = new A[]{new A(), new A()};

多维数组

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

数组与泛型

创建泛型实例数组

// 擦除使数组不能知道确切类型
List<Integer>[] a1 = new List<Integer>[10];
List<Integer>[] a2;
List[] a3 = new List[10];
a2 = (List<Integer>[]) a3;  // a2可以绕过检查,创建泛型实例数组

泛型中返回数组

class A<T> {
    // 数组可以知道返回的确切类型
    private T[] fun(T[] arg) {
        return arg;
    }
}

创建泛型参数数组

class A<T> {
    private T[] array;

    public A(int size) {
        array = new T[size];
        array = (T[]) new Object[size];
    }
}

相关工具

Arrays

  • asList():接受一个数组或者一个逗号分隔的元素列表,返回一个尺寸无法改变的List。
  • fill():用数据填充数组。
    • 两个参数:第一个是数组,第二个是要填充的值。
    • 四个参数:第一个是数组,第二三个是要填充的区域,第四个是要填充的值。
  • toString()deepToString():分别将一维数组和多维数组转换为字符串。
  • asList():接受任意的序列或数组,产生一个List容器。
  • equals()deepEquals():分别比较一维数组和多维数组是否相等。
  • sort():对数组进行排序。
  • binarySearch():在已经排序的数组里查找元素。
  • hashCode():产生散列码。

System.arraycopy()

  • 用于复制数组,速度比for循环快。
  • 接受5个参数:源数组、起始索引、目标数组、起始索引、长度。
  • 对于对象数组执行浅拷贝。
  • 不会自动拆包和包装。

相关文章

  • 菜鸟学习javascript12

    14.数组的声明与应用 一.数组的作用 只要是批量的数据都需要使用数组声明 二.如何声明数组 1....

  • 14. 数组

    数组并不是只针对数字来说的。仅限于数字的那是数学范畴的数列。计算机编程里的数组是把一堆数据编成了组。数组可以是整型...

  • ★14.数组

    关于数组 数组有且只有length字段。 基本类型数组直接存储数据,对象类型数组存储引用。 方法可以返回数组而不需...

  • LCP 14. 切分数组

    LCP 14. 切分数组[https://leetcode-cn.com/problems/qie-fen-shu...

  • 算法第3天:最长公共前缀

    leetcode 14. 最长公共前缀 simple 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共...

  • Perl的reverse和sort操作符

    14. reverse 操作符 读取列表的值(一般来自数组),并按照相反次序返回新的列表。 只是返回倒序后的列表,...

  • 14.二分查找

    14. 二分查找 描述 笔记 数据 评测 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(lo...

  • LeetCode刷题笔记(六)字符串

    六. 字符串 14. 最长公共前缀 题目:编写一个函数来查找字符串数组中的最长公共前缀。输入:strs = ["f...

  • 14. 最长公共前缀

    20180923-摘抄自14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,...

  • iOS-算法集锦-剑指offer-百题详解之二

    11. 旋转数组的最小数字 12. 矩阵中的路径 13. 机器人的运动范围 14. 剪绳子 15. 二进制中 1 ...

网友评论

      本文标题:★14.数组

      本文链接:https://www.haomeiwen.com/subject/iouzcxtx.html