Java - 数组

基本概念

[plain]  view plain  copy
  1. 数组是存放相同类型数据的有序集合,通过下标或者索引来使用数组  

声明创建

[plain]  view plain  copy
  1. 声明数组对象   
  2.     int[] a; 声明整型一维数组引用a  
  3. 创建数组对象  
  4.     创建时必须给定第一维的长度,否则系统无法分配空间,导致编译失败  
  5.     new int[4]; 创建整型一维数组对象  
  6.     a = new int[4]; 将引用a指向长度为4的整型一维数组对象  
  7. 二维数组声明      
  8.     int a [][] = new int[行的个数][列的个数]  
  9. 对于数组对象来说,对象一旦被创建,大小不可改变,  
  10.     也就是说数组的length属性是public,final,int的  

数组初始化

[plain]  view plain  copy
  1. 数组初始化包括默认初始化,循环初始化,枚举初始化  
  2. int[] day = {1,2,3,4,5};    
  3. int[] day = new int[]{1,2,3,4,5};//枚举初始化  
  4. int[][] day = {{1,12},{2,12}{3,12},{4,12},{5,12}};    
  5. int[][] day = new int[][]{{1,12},{2,12}{3,12},{4,12},{5,12}};  

交换两个原生数据类型的数据只能采用数组来交换

[java]  view plain  copy
  1. package com.itlwc;  
  2.   
  3. public class Test {  
  4.     public static void main(String[] args) {  
  5.         int[] i = { 12 };  
  6.         swap(i);  
  7.         System.out.println(i[0]);  
  8.         System.out.println(i[1]);  
  9.     }  
  10.   
  11.     public static void swap(int[] i) {  
  12.         int temp = i[0];  
  13.         i[0] = i[1];  
  14.         i[1] = temp;  
  15.     }  
  16. }  

数组遍历

[java]  view plain  copy
  1. package com.itlwc;  
  2.   
  3. public class Test {  
  4.     public static void main(String[] args) {  
  5.         int[] a = new int[] { 12345 };  
  6.         // 遍历1  
  7.         for (int i = 0; i < a.length; i++) {  
  8.             System.out.print(a[i]);  
  9.         }  
  10.         System.out.println();  
  11.         // 遍历2  
  12.         for (int i : a) {  
  13.             System.out.print(i);  
  14.         }  
  15.     }  
  16. }  

数组复制

[java]  view plain  copy
  1. package com.itlwc;  
  2.   
  3. import java.util.Arrays;  
  4.   
  5. public class Test {  
  6.     public static void main(String[] args) {  
  7.         int[] a = new int[] { 12345 };  
  8.         int[] b = new int[a.length];  
  9.         // 方法一  
  10.         System.arraycopy(a, 0, b, 0, a.length);  
  11.         // 方法二  
  12.         b = Arrays.copyOf(a, a.length);  
  13.         // 方法三  
  14.         b = Arrays.copyOfRange(a,0,a.length);  
  15.     }  
  16. }  

数组排序

[java]  view plain  copy
  1. package com.itlwc;  
  2.   
  3. import java.util.Arrays;  
  4.   
  5. public class Test {  
  6.     public static void main(String[] args) {  
  7.         int[] a = new int[] { 12345 };  
  8.         int[] b = new int[] { 12345 };  
  9.         // 方法一  
  10.         Arrays.sort(a);  
  11.         // 方法二  
  12.         Arrays.sort(a, 0, a.length);  
  13.         // 方法三  
  14.         mySort(b);  
  15.     }  
  16.   
  17.     public static void mySort(int[] b) {  
  18.         for (int i = 0; i < b.length; i++) {  
  19.             for (int j = 0; j < b.length; j++) {  
  20.                 if (b[i] > b[j]) {  
  21.                     int temp = 0;  
  22.                     temp = b[i];  
  23.                     b[i] = b[j];  
  24.                     b[j] = temp;  
  25.                 }  
  26.             }  
  27.         }  
  28.     }  
  29. }  

搜索指定元素

[java]  view plain  copy
  1. package com.itlwc;  
  2.   
  3. import java.util.Arrays;  
  4.   
  5. public class Test {  
  6.     public static void main(String[] args) {  
  7.         int[] a = new int[] { 12345 };  
  8.         // 方法一  
  9.         Arrays.binarySearch(a, 1);  
  10.         // 方法二  
  11.         Arrays.binarySearch(a, 0, a.length, 1);  
  12.     }  
  13. }  

比较数组的元素

[java]  view plain  copy
  1. package com.itlwc;  
  2.   
  3. import java.util.Arrays;  
  4.   
  5. public class Test {  
  6.     public static void main(String[] args) {  
  7.         int[] a = new int[] { 12345 };  
  8.         int[] b = new int[] { 12345 };  
  9.         Arrays.equals(a, b);  
  10.     }  
  11.   
  12.     // 比较的方法  
  13.     public static boolean equals(int[] a, int[] b) {  
  14.         if (a == null || b == null)  
  15.             return false;  
  16.         if (a.length != b.length)  
  17.             return false;  
  18.         for (int i = 0; i < a.length; i++)  
  19.             if (a[i] != b[i])  
  20.                 return false;  
  21.         return true;  
  22.     }  
  23. }  

二分查找

[java]  view plain  copy
  1. package com.itlwc;  
  2.   
  3. public class Test {  
  4.     public static void main(String[] args) {  
  5.         int[] a = { 123456789 };  
  6.         int value = 9;  
  7.         System.out.println(new Test().get(a, value));  
  8.     }  
  9.   
  10.     public int get(int[] a, int value) {  
  11.         int min = 0;  
  12.         int max = a.length - 1;  
  13.         int middle;  
  14.         while (min <= max) {  
  15.             middle = (min + max) / 2;  
  16.             if (a[middle] == value) {  
  17.                 return middle;  
  18.             }  
  19.             if (value < a[middle]) {  
  20.                 max = middle - 1;  
  21.             }  
  22.             if (value > a[middle]) {  
  23.                 min = middle + 1;  
  24.             }  
  25.         }  
  26.         return -1;  
  27.     }  
  28. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值