Java 数据结构 & 算法宁可累死自己, 也要卷死别人 3 数组
Posted 我是小白呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 数据结构 & 算法宁可累死自己, 也要卷死别人 3 数组相关的知识,希望对你有一定的参考价值。
概述
从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.
数组
数组 (Array) 是有序数据的集合, 在 Java 中 java.util.Arrays
包含用来操作数组的各种方法, 比如排序和搜索等. 其所有方法均为静态方法, 调用起来非常简单.
声明数组的两个方法
方法一:
数据类型[] array;
方法二:
数据类型 array[];
创建数组的两个方法
方法一:
数据类型[] array = new 数据类型[n];
int[] array = new int[10];
方法二:
数据类型[] arrray = value1, value2, ...
int[] array = 1, 2, 3, 4;
索引
索引 (Index) 可以帮助我们定位到想要的数据, 大幅提高数据的检索速度.
自定义数组
泛型
<E>
示一种指定的数据类型, 叫做泛型. E, 取自 Element (元素) 的首字母. 在出现 E 的地方, 我们使用一种引用数据类型将其替换即可, 表示我们将存储哪种引用类型的元素.
构造函数
// 有参构造
public Array(int capacity)
data = (E[]) new Object[capacity];
size = 0;
// 无参构造
public Array()
this(10);
元素操作
// 头部添加元素
public void addFirst(E element)
// 如果超过数组最大容量, 扔出异常
if(size == data.length)
throw new RuntimeException("array is full!");
// 列表所有index及元素后移
for (int i = size - 1; i >= 0; i--)
data[i + 1] = data[i];
// 数组第size个赋值为element
data[0] = element;
// 数组大小+1
size++
// 尾部添加元素
public void addLast(E element)
// 如果超过数组最大容量, 扔出异常
if(size == data.length)
throw new RuntimeException("array is full!");
// 数组第size个赋值为element
data[size] = element;
// 数组大小+1
size++;
// 通过索引添加元素
public void add(int index, E element)
// 如果超过数组最大容量, 扔出异常
if(size == data.length)
throw new RuntimeException("reached max capacity");
if(index < 0 || index > size)
throw new RuntimeException("invalid index");
// 列表所有index及以后的元素后移
for (int i = size-1; i >=index; i--)
data[i + 1] = data[i];
data[index] = element;
size++;
调用
public static void main(String[] args)
// 创建数组
Array array = new Array(10);
// 尾部添加
array.addLast(2);
array.addLast(3);
array.addLast(4);
System.out.println(array.toString());
// 头部添加
array.addFirst(1);
array.addFirst(0);
System.out.println(array.toString());
// 通过index添加元素
array.add(0, -1);
array.add(6, 5);
System.out.println(array.toString());
输出结果:
Arraydata=[2, 3, 4, null, null, null, null, null, null, null]
Arraydata=[0, 1, 2, 3, 4, null, null, null, null, null]
Arraydata=[-1, 0, 1, 2, 3, 4, 5, null, null, null]
完整代码
import java.util.Arrays;
public class Array<E>
private E[] data; // 存放数据
private int size; // 存放数组元素个数
// 有参构造
public Array(int capacity)
data = (E[]) new Object[capacity];
size = 0;
// 无参构造
public Array()
this(10);
// 获取数组容量
public int getCapacity()
return data.length;
// 获取数组元素个数
public int getSize()
return size;
// 判断数组是否为空
public boolean isEmpty()
return size == 0;
// 头部添加元素
public void addFirst(E element)
// 如果超过数组最大容量, 扔出异常
if(size == data.length)
throw new RuntimeException("array is full!");
// 列表所有index及元素后移
for (int i = size - 1; i >= 0; i--)
data[i + 1] = data[i];
// 数组第size个赋值为element
data[0] = element;
// 数组大小+1
size++;
// 尾部添加元素
public void addLast(E element)
// 如果超过数组最大容量, 扔出异常
if(size == data.length)
throw new RuntimeException("array is full!");
// 数组第size个赋值为element
data[size] = element;
// 数组大小+1
size++;
// 通过索引添加元素
public void add(int index, E element)
// 如果超过数组最大容量, 扔出异常
if(size == data.length)
throw new RuntimeException("reached max capacity");
if(index < 0 || index > size)
throw new RuntimeException("invalid index");
// 列表所有index及以后的元素后移
for (int i = size-1; i >=index; i--)
data[i + 1] = data[i];
data[index] = element;
size++;
@Override
public String toString()
return "Array" +
"data=" + Arrays.toString(data) +
'';
public static void main(String[] args)
// 创建数组
Array array = new Array(10);
// 尾部添加
array.addLast(2);
array.addLast(3);
array.addLast(4);
System.out.println(array.toString());
// 头部添加
array.addFirst(1);
array.addFirst(0);
System.out.println(array.toString());
// 通过index添加元素
array.add(0, -1);
array.add(6, 5);
System.out.println(array.toString());
以上是关于Java 数据结构 & 算法宁可累死自己, 也要卷死别人 3 数组的主要内容,如果未能解决你的问题,请参考以下文章
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 20 排序算法
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 18 贪心算法
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 18 贪心算法
Java 数据结构 & 算法宁可累死自己, 也要卷死别人 17 KMP 算法