Java学习之数组(一)
1、1.使用sort()方法对Java数组进行排序,及如何使用 binarySearch() 方法来查找数组中的元素。
代码如下:
public class bTest {
public static void main(String[] args) {
int array[] = { 34, 25, -23, 61, -13, 18, 0, -17, -49, 47 };
Arrays.sort(array);//调用sort()函数对数组进行排序
outArray("数组排序结果为", array);//调用静态方法输出数组
int index = Arrays.binarySearch(array, 18);//查找元素
System.out.println("元素 18 在第 " + index + " 个位置");
}
private static void outArray(String message, int array[]) {
for (int i = 0; i < array.length; i++) {
if (i != 0) {
System.out.print(", ");
}
System.out.print(array[i]);
}
System.out.println();
}
}
结果如下图所示:

2、2.使用 insertElement () 方法向数组插入元素
代码如下:
int newIndex = index + 1;
array = add(array, 10, newIndex);
outArray("数组添加元素 1", array);
private static int[] add(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;
}
结果如下图所示:

3、3.使用 Collections.reverse(ArrayList) 将数组进行反转:
代码如下:
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");
arrayList.add("4");
arrayList.add("5");
System.out.println("反转前排序: " + arrayList);
Collections.reverse(arrayList);
System.out.println("反转后排序: " + arrayList);
结果如下:

4、4.通过 List 类的 Arrays.toString () 方法和 List 类的 list.Addall(array1.asList(array2) 方法将两个数组合并为一个数组
代码如下:
String a[] = { "A", "B", "C" };
String b[] = { "D", "E" };
List list = new ArrayList(Arrays.asList(a));
list.addAll(Arrays.asList(b));
Object[] c = list.toArray();
System.out.println(Arrays.toString(c));
结果如下:

5、5.通过 Java Util 类的 Array.fill(arrayname,value) 方法和 Array.fill(arrayname ,starting index ,ending index ,value) 方法向数组中填充元素
代码如下:
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]);
}
结果如下:

6、6. remove () 方法来删除数组元素
代码如下:
ArrayList<String> objArray = new ArrayList<String>();
objArray.clear();
objArray.add(0,"第 0 个元素");
objArray.add(1,"第 1 个元素");
objArray.add(2,"第 2 个元素");
objArray.add(3,"第 3个元素");
objArray.add(4,"第 4 个元素");
objArray.add(5,"第 5 个元素");
System.out.println("数组删除元素前:"+objArray);
objArray.remove(1);
System.out.println("数组删除元素后:"+objArray);
结果如下:

7、7.使用 removeAll () 方法来计算两个数组的差集
代码如下:
ArrayList<String> objArray = new ArrayList<String>();
ArrayList<String> objArray2 = new ArrayList<String>();
objArray2.add(0,"张飞1");
objArray2.add(1,"张飞2");
objArray2.add(2,"张飞3");
objArray2.add(3,"张飞4");
objArray.add(0,"张飞1");
objArray.add(1,"张飞7");
objArray.add(2,"张飞8");
System.out.println("array1 的元素" +objArray);
System.out.println("array2 的元素" +objArray2);
objArray.removeAll(objArray2);
System.out.println("array1 与 array2 数组差集为:"+objArray);
结果如下图:

8、8. equals ()方法来判断数组是否相等:
代码如下:
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("数组 ary 是否与数组 ary1相等? :"
+Arrays.equals(ary, ary1));
System.out.println("数组 ary 是否与数组 ary2相等? :"
+Arrays.equals(ary, ary2));
结果如下:

9、9. 使用 union ()方法来判断数组是否相等
代码如下:
String[] arr1 = { "1", "2", "3" };
String[] arr2 = { "4", "5", "6" };
String[] result_union = union(arr1, arr2);
System.out.println("并集的结果如下:");
for (String str : result_union) {
System.out.println(str);
}
// 求两个字符串数组的并集,利用set的元素唯一性
public static String[] union(String[] arr1, String[] arr2) {
Set<String> set = new HashSet<String>();
for (String str : arr1) {
set.add(str);
}
for (String str : arr2) {
set.add(str);
}
String[] result = { };
return set.toArray(result);
}
结果如下:
