如何对数组进行排序和搜索里面的元素?
解决方法
下面的示例演示如何使用sort()和binarySearch()方法来完成任务。用户自定义方法PrintArray()用于显示输出:
import java.util.Arrays;
public class MainClass {
public static void main(String args[]) throws Exception {
int array[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
Arrays.sort(array);
printArray("Sorted array", array);
int index = Arrays.binarySearch(array, 2);
System.out.println("Found 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();
}
}
结果
上面的代码示例将产生以下结果。
Sorted array: [length: 10]
-9, -7, -3, -2, 0, 2, 4, 5, 6, 8
Found 2 @ 5
如何排序数组,并插入元素到数组中?
解决方法
下面的示例演示如何使用sort()方法和用户定义的方法insertElement()来完成任务。
import java.util.Arrays;
public class MainClass {
public static void main(String args[]) throws Exception {
int array[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
Arrays.sort(array);
printArray("Sorted array", array);
int index = Arrays.binarySearch(array, 1);
System.out.println("Didn't find 1 @ "
+ index);
int newIndex = -index - 1;
array = insertElement(array, 1, newIndex);
printArray("With 1 added", 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;
}
}
结果
上面的代码示例将产生以下结果。
Sorted array: [length: 10]
-9, -7, -3, -2, 0, 2, 4, 5, 6, 8
Didn't find 1 @ -6
With 1 added: [length: 11]
-9, -7, -3, -2, 0, 1, 2, 4, 5, 6, 8
如何确定一个二维数组的上限或长度?
解决方法
下面的例子可帮助确定一个二维数组的上限,使用arrayname.length。
public class Main {
public static void main(String args[]) {
String[][] data = new String[2][5];
System.out.println("Dimension 1: " + data.length);
System.out.println("Dimension 2: " + data[0].length);
}
}
结果
上面的代码示例将产生以下结果。
Dimension 1: 2
Dimension 2: 5
如何逆转数组列表?
解决方法
下面的示例反转使用Collections.reverse(ArrayList)方法的数组列表。
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
arrayList.add("A");
arrayList.add("B");
arrayList.add("C");
arrayList.add("D");
arrayList.add("E");
System.out.println("Before Reverse Order: " + arrayList);
Collections.reverse(arrayList);
System.out.println("After Reverse Order: " + arrayList);
}
}
结果
上面的代码示例将产生以下结果。
Before Reverse Order: [A, B, C, D, E]
After Reverse Order: [E, D, C, B, A]
如何编写让一个字符串数组到输出控制台?
解决方法
下面的例子演示了通过循环写入数组元素到输出控制台。
public class Welcome {
public static void main(String[] args){
String[] greeting = new String[3];
greeting[0] = "This is the greeting";
greeting[1] = "for all the readers from";
greeting[2] = "Java Source .";
for (int i = 0; i < greeting.length; i++){
System.out.println(greeting[i]);
}
}
}
结果
上面的代码示例将产生以下结果。
This is the greeting
For all the readers From
Java source .
如何搜索数组中最小和最大元素?
解决方法
这个例子显示了如何通过使用 Collection类的Collection.max()和Collection.min()方法来搜索一个数组中的最小和最大元素。
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Integer[] numbers = { 8, 2, 7, 1, 4, 9, 5};
int min = (int) Collections.min(Arrays.asList(numbers));
int max = (int) Collections.max(Arrays.asList(numbers));
System.out.println("Min number: " + min);
System.out.println("Max number: " + max);
}
}
结果
上面的代码示例将产生以下结果。
Min number: 1
Max number: 9
如何合并两个数组?
解决方法
这个例子显示了如何通过使用List类的 list.Addall(array1.asList(array2)方法和Array类的Arrays.toString()方法将两个数组合并成一个数组。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String args[]) {
String a[] = { "A", "E", "I" };
String b[] = { "O", "U" };
List list = new ArrayList(Arrays.asList(a));
list.addAll(Arrays.asList(b));
Object[] c = list.toArray();
System.out.println(Arrays.toString(c));
}
}
结果
上面的代码示例将产生以下结果。
[A, E, I, O, U]
如何填充(初始化)数组?
解决方法
这个例子中的填充使用Array.fill(arrayname,value)方法和Java Util类的Array.fill(arrayname ,starting index ,ending index ,value) 方法(初始化数组的所有元素为short类型)数组。
import java.util.*;
public class FillTest {
public static void main(String args[]) {
int array[] = new int[6];
Arrays.fill(array, 100);
for (int i=0, n=array.length; i < n; i++) {
System.out.println(array[i]);
}
System.out.println();
Arrays.fill(array, 3, 6, 50);
for (int i=0, n=array.length; i< n; i++) {
System.out.println(array[i]);
}
}
}
结果
上面的代码示例将产生以下结果。
100
100
100
100
100
100
100
100
100
50
50
50
如何初始化后延长一个数组?
解决方法
下面的示例演示如何通过创建一个新数组来扩展初始化后的数组。
public class Main {
public static void main(String[] args) {
String[] names = new String[] { "A", "B", "C" };
String[] extended = new String[5];
extended[3] = "D";
extended[4] = "E";
System.arraycopy(names, 0, extended, 0, names.length);
for (String str : extended){
System.out.println(str);
}
}
}
结果
上面的代码示例将产生以下结果。
A
B
C
D
E
如何删除数组中的一个元素?
解决方法
下面的示例演示如何从数组中删除一个元素。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList objArray = new ArrayList();
objArray.clear();
objArray.add(0,"0th element");
objArray.add(1,"1st element");
objArray.add(2,"2nd element");
System.out.println("Array before removing an element"+objArray);
objArray.remove(1);
objArray.remove("0th element");
System.out.println("Array after removing an element"+objArray);
}
}
结果
上面的代码示例将产生以下结果。
Array before removing an element[0th element, 1st element, 2nd element]
Array after removing an element[2nd element]
如何查找从数组中的公共元素?
解决方法
下面的示例演示如何找到从两个数组公共元素,并将它们存储在数组中。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList objArray = new ArrayList();
ArrayList objArray2 = new ArrayList();
objArray2.add(0,"common1");
objArray2.add(1,"common2");
objArray2.add(2,"notcommon");
objArray2.add(3,"notcommon1");
objArray.add(0,"common1");
objArray.add(1,"common2");
objArray.add(2,"notcommon2");
System.out.println("Array elements of array1"+objArray);
System.out.println("Array elements of array2"+objArray2);
objArray.retainAll(objArray2);
System.out.println("Array1 after retaining common
elements of array2 & array1"+objArray);
}
}
结果
上面的代码示例将产生以下结果。
Array elements of array1[common1, common2, notcommon2]
Array elements of array2[common1, common2, notcommon,
notcommon1]
Array1 after retaining common elements of array2 & array1
[common1, common2]
如何在Array查找一个对象或一个字符串?
解决方法
下面的示例使用Contains方法来搜索在Array的String。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList objArray = new ArrayList();
ArrayList objArray2 = new ArrayList();
objArray2.add(0,"common1");
objArray2.add(1,"common2");
objArray2.add(2,"notcommon");
objArray2.add(3,"notcommon1");
objArray.add(0,"common1");
objArray.add(1,"common2");
System.out.println("Array elements of array1"+objArray);
System.out.println("Array elements of array2"+objArray2);
System.out.println("Array 1 contains String common2?? "
+objArray.contains("common1"));
System.out.println("Array 2 contains Array1?? "
+objArray2.contains(objArray) );
}
}
结果
上面的代码示例将产生以下结果。
Array elements of array1[common1, common2]
Array elements of array2[common1, common2, notcommon, notcommon1]
Array 1 contains String common2?? true
Array 2 contains Array1?? false
如何检查两个数组是否相等?
解决方法
下面的示例演示如何使用数组的equals()方法来检查两个数组相等与否。
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
int[] ary = {1,2,3,4,5,6};
int[] ary1 = {1,2,3,4,5,6};
int[] ary2 = {1,2,3,4};
System.out.println("Is array 1 equal to array 2?? "
+Arrays.equals(ary, ary1));
System.out.println("Is array 1 equal to array 3?? "
+Arrays.equals(ary, ary2));
}
}
结果
上面的代码示例将产生以下结果。
Is array 1 equal to array 2?? true
Is array 1 equal to array 3?? false