【Java】数组

数组

程序开发与运维发布于 今天 02:05

Java 语言中提供的数组是用来存储固定大小的同类型元素 。可以通过下标对数组元素进行随机访问。由于数组大小固定,故增加和删除元素时需要创建一个新的数组,移动原数组到新数组,时间复杂度为O(n)。

初始化

动态初始化:

int[] arr = new int[3];

arr[0] = 10;

arr[1] = 20;

arr[2] = 30;

静态初始化:

int[] arr = new int[] {1,2,3,4,5};

长度

由于数组长度是固定的,直接使用length获取数组长度:

public static int getLength(Object[] arr){

return arr.length;

}

查询

查找指定下标元素:

public static Object getWithIndex(Object[] arr, int index){

if (index > arr.length - 1 || index < 0) {

throw new RuntimeException("下标越界");

}

return arr[index];

}

线性查找指定元素的下标:

public static int linearSearch(Object[] arr, Object element){

int index = -1;

for (int i = 0; i < arr.length; i++) {

if (element.equals(arr[i])){

index = i;

break;

}

}

return index;

}

增加

在数组末尾增加一个元素:

public static Object[] addToLast(Object[] arr, Object element){

Object[] newArr = new Object[arr.length + 1];

for (int i = 0; i < arr.length; i++) {

newArr[i] = arr[i];

}

newArr[arr.length] = element;

return newArr;

}

在数组指定位置增加一个元素:

public static Object[] addWithIndex(Object[] arr, Object element, int index){

if (index > arr.length || index < 0) {

throw new RuntimeException("下标越界");

}

Object[] newArr = new Object[arr.length + 1];

for (int i = 0; i < arr.length; i++) {

if (i < index){

newArr[i] = arr[i];

} else {

newArr[i + 1] = arr[i];

}

}

newArr[index] = element;

return newArr;

}

删除

删除数组最后一个元素:

public static Object[] deleteLast(Object[] arr){

if (arr.length == 0){

throw new RuntimeException("下标越界");

}

Object[] newArr = new Object[arr.length - 1];

for (int i = 0; i < arr.length - 1; i++) {

newArr[i] = arr[i];

}

return newArr;

}

删除数组指定位置元素:

public static Object[] deleteWithIndex(Object[] arr, int index){

if (index > arr.length - 1 || index < 0) {

throw new RuntimeException("下标越界");

}

Object[] newArr = new Object[arr.length - 1];

for (int i = 0; i < newArr.length; i++) {

if (i < index){

newArr[i] = arr[i];

} else {

newArr[i] = arr[i + 1];

}

}

return newArr;

}

Arrays

java.util.Arrays 类能方便地操作数组,常用的静态方法有:

  • toString():将数组转换为String。

  • fill():给数组赋予一个相同的值。

  • sort():按升序排序,使用双基准快速排序(Dual-Pivot Quicksort)算法,时间复杂度为O(n log(n)) 。

  • equals() :比较数组中元素值是否相等。

  • binarySearch() :对排序好的数组使用二分查找法查找。

  • copyOf():拷贝数组到指定长度的新数组,如果新数组长度大于原数组,则用0填充,实际调用的是System.arraycopy()方法。

  • copyOfRange():拷贝原数组指定索引范围(包括起点,不包括终点)数据到新数组,实际调用的是System.arraycopy()方法。

欢迎关注我的公众号,一起学习技术。

【Java】数组

java

阅读 30发布于 今天 02:05

本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

avatar

程序开发与运维

1 声望

0 粉丝

0 条评论

得票时间

avatar

程序开发与运维

1 声望

0 粉丝

宣传栏

Java 语言中提供的数组是用来存储固定大小的同类型元素 。可以通过下标对数组元素进行随机访问。由于数组大小固定,故增加和删除元素时需要创建一个新的数组,移动原数组到新数组,时间复杂度为O(n)。

初始化

动态初始化:

int[] arr = new int[3];

arr[0] = 10;

arr[1] = 20;

arr[2] = 30;

静态初始化:

int[] arr = new int[] {1,2,3,4,5};

长度

由于数组长度是固定的,直接使用length获取数组长度:

public static int getLength(Object[] arr){

return arr.length;

}

查询

查找指定下标元素:

public static Object getWithIndex(Object[] arr, int index){

if (index > arr.length - 1 || index < 0) {

throw new RuntimeException("下标越界");

}

return arr[index];

}

线性查找指定元素的下标:

public static int linearSearch(Object[] arr, Object element){

int index = -1;

for (int i = 0; i < arr.length; i++) {

if (element.equals(arr[i])){

index = i;

break;

}

}

return index;

}

增加

在数组末尾增加一个元素:

public static Object[] addToLast(Object[] arr, Object element){

Object[] newArr = new Object[arr.length + 1];

for (int i = 0; i < arr.length; i++) {

newArr[i] = arr[i];

}

newArr[arr.length] = element;

return newArr;

}

在数组指定位置增加一个元素:

public static Object[] addWithIndex(Object[] arr, Object element, int index){

if (index > arr.length || index < 0) {

throw new RuntimeException("下标越界");

}

Object[] newArr = new Object[arr.length + 1];

for (int i = 0; i < arr.length; i++) {

if (i < index){

newArr[i] = arr[i];

} else {

newArr[i + 1] = arr[i];

}

}

newArr[index] = element;

return newArr;

}

删除

删除数组最后一个元素:

public static Object[] deleteLast(Object[] arr){

if (arr.length == 0){

throw new RuntimeException("下标越界");

}

Object[] newArr = new Object[arr.length - 1];

for (int i = 0; i < arr.length - 1; i++) {

newArr[i] = arr[i];

}

return newArr;

}

删除数组指定位置元素:

public static Object[] deleteWithIndex(Object[] arr, int index){

if (index > arr.length - 1 || index < 0) {

throw new RuntimeException("下标越界");

}

Object[] newArr = new Object[arr.length - 1];

for (int i = 0; i < newArr.length; i++) {

if (i < index){

newArr[i] = arr[i];

} else {

newArr[i] = arr[i + 1];

}

}

return newArr;

}

Arrays

java.util.Arrays 类能方便地操作数组,常用的静态方法有:

  • toString():将数组转换为String。

  • fill():给数组赋予一个相同的值。

  • sort():按升序排序,使用双基准快速排序(Dual-Pivot Quicksort)算法,时间复杂度为O(n log(n)) 。

  • equals() :比较数组中元素值是否相等。

  • binarySearch() :对排序好的数组使用二分查找法查找。

  • copyOf():拷贝数组到指定长度的新数组,如果新数组长度大于原数组,则用0填充,实际调用的是System.arraycopy()方法。

  • copyOfRange():拷贝原数组指定索引范围(包括起点,不包括终点)数据到新数组,实际调用的是System.arraycopy()方法。

欢迎关注我的公众号,一起学习技术。

【Java】数组

以上是 【Java】数组 的全部内容, 来源链接: utcz.com/a/108725.html

回到顶部