常用的Java数组操作

如何对数组进行排序和搜索里面的元素?

解决方法

下面的示例演示如何使用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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值