数组排序及元素查找
使用sort()方法对Java数组进行排序,使用 binarySearch() 方法来查找数组中的元素
import java
.util
.Arrays
;
public class MainClass {
public static void main(String args
[]) {
int array
[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
Arrays
.sort(array
);
printArray("数组排序结果为", array
);
int index
= Arrays
.binarySearch(array
, 2);
System
.out
.println("元素 2 在第 " + index
+ " 个位置");
}
private static void printArray(String message
, int array
[]) {
System
.out
.println(message
+ ": [length: " + array
.length
+ "]");
for (int i
= 0; i
< array
.length
; i
++) {
if(i
!= 0){
System
.out
.print(", ");
}
System
.out
.print(array
[i
]);
}
System
.out
.println();
}
}
代码输出结果:
数组添加元素
使用 insertElement () 方法向数组插入元素
import java
.util
.Arrays
;
public class MainClass {
public static void main(String args
[]) {
int array
[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
Arrays
.sort(array
);
printArray("数组排序", array
);
int index
= Arrays
.binarySearch(array
, 1);
System
.out
.println("元素 1 所在位置(负数为不存在):"
+ index
);
int newIndex
= -index
- 1;
array
= insertElement(array
, 1, newIndex
);
printArray("数组添加元素 1", array
);
}
private static void printArray(String message
, int array
[]) {
System
.out
.println(message
+ ": [length: " + array
.length
+ "]");
for (int i
= 0; i
< array
.length
; i
++) {
if (i
!= 0){
System
.out
.print(", ");
}
System
.out
.print(array
[i
]);
}
System
.out
.println();
}
private static int[] insertElement(int original
[],
int element
, int index
) {
int length
= original
.length
;
int destination
[] = new int[length
+ 1];
System
.arraycopy(original
, 0, destination
, 0, index
);
destination
[index
] = element
;
System
.arraycopy(original
, index
, destination
, index
+ 1, length
- index
);
return destination
;
}
}
代码输出结果:
获取数组长度
第一维数组长度: data.length第二维数组长度: data[0].length返回值就是长度
数组反转
import java
.util
.ArrayList
;
import java
.util
.Collections
;
public class Main {
public static void main(String
[] args
) {
ArrayList
<String> arrayList
= new ArrayList<String>();
arrayList
.add("A");
arrayList
.add("B");
arrayList
.add("C");
arrayList
.add("D");
arrayList
.add("E");
System
.out
.println("反转前排序: " + arrayList
);
Collections
.reverse(arrayList
);
System
.out
.println("反转后排序: " + arrayList
);
}
}
代码输出结果:
数组获取最大和最小值
通过 Collections 类的 Collections.max() 和 Collections.min() 方法来查找数组中的最大和最小值
import java
.util
.Arrays
;
import java
.util
.Collections
;
public class MainClass {
public static void main(String
[] args
) {
Integer
[] numbers
= { 8, 2, 7, 1, 4, 9, 5};
System
.out
.println(Arrays
.asList(numbers
));
int min
= (int) Collections
.min(Arrays
.asList(numbers
));
int max
= (int) Collections
.max(Arrays
.asList(numbers
));
System
.out
.println("最小值: " + min
);
System
.out
.println("最大值: " + max
);
}
}
代码输出结果:
Array和ArrayList
Array相当于C++的数组,Array List相当于C++中的动态数组。