【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()
方法。
欢迎关注我的公众号,一起学习技术。
阅读 30发布于 今天 02:05
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
程序开发与运维
1 声望
0 粉丝
程序开发与运维
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】数组 的全部内容, 来源链接: utcz.com/a/108725.html
得票时间