关于Java中数组的常用操作方法

1. 声明一个数组

1 String[] arr1 = new String[5];  
2 String[] arr2 = {"a","b","c", "d", "e"};  
3 String[] arr3= new String[]{"a","b","c","d","e"};  

2. 输出一个数组

1 int[] arr = { 1, 2, 3, 4, 5 };  
2 String arrString = Arrays.toString(arr);  
3    
4 // 直接输出,为内存地址
5 System.out.println(arr);  
6 // [I@139a55
7    
8 System.out.println(arrString );  
9 // [1, 2, 3, 4, 5]  

3. 检查一个数组是否包含某值

1 String[] arr= { "a", "b", "c", "d", "e" };  
2 boolean b = Arrays.asList(arr).contains("a");  
3 System.out.println(b);  
4 // true  

4. 连接两个数组

1 //使用Apache Commons Lang library
2 
3 1 int[] arr1 = { 1, 2, 3, 4, 5 };  
4 2 int[] arr2= { 6, 7, 8, 9, 10 };  
5 3 int[] combArr = ArrayUtils.addAll(arr1 , arr2); 

 

// System.arraycopy()
1
static String[] concat(String[] a, String[] b) { 2 String[] c = new String[a.length + b.length]; 3 System.arraycopy(a, 0, c, 0, a.length); 4 System.arraycopy(b, 0, c, a.length, b.length); 5 return c; 6 }
1 //Arrays.copyOf()
2 
3 public static int[] concat(int[] first, int[] second) {
4     int[] result = Arrays.copyOf(first, first.length + second.length);
5     System.arraycopy(second, 0, result, first.length, second.length);
6     return result;
7 }

5. 逆向输出一个数组

1 // Apache Commons Lang library
2 
3 int[] arr= { 1, 2, 3, 4, 5 };  
4 ArrayUtils.reverse(intArray);  
5 System.out.println(Arrays.toString(intArray));  
6 //[5, 4, 3, 2, 1]  
1 int[] arr = { 1, 2, 3, 4, 5 };
2 int[] revArr = new int[arr.length];
3 for(int i = 0; i < arr.length; i++){
4     revArr[i] = arr[arr.length - i -1];
5 }
6 System.out.println(Arrays.toString(revArr));
7 
8 //[5, 4, 3, 2, 1]

6. 移除数组中的元素

1 // Apache common lang  
2 
3 int[] arr= { 1, 2, 3, 4, 5 };  
4 int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array  
5 System.out.println(Arrays.toString(removed))

 

posted @ 2016-09-18 20:59  Mr.范弟  阅读(21143)  评论(0编辑  收藏  举报