Java中数组的使用以及常用的数组方法

数组是相同数据类型的集合
1,数组的初始化
动态初始化 数据类型[] 数组名称 = new 数据类型 [] { 初始化数据 };
int[] arr = new int[]{1, 2, 3};
静态初始化 数据类型[] 数组名称 = { 初始化数据 }
int[] arr = {1, 2, 3};
2,数组中最常用的方法
(1),数组名.length
获取数组的长度
(2)数组名[元素下标]
3,数组的遍历
(1),用for循环实现


 for (int i = 0; i < arr.length; i++) { 
       System.out.println(arr[i]); 
       }

(2)用foreach 遍历数组

  for (int x : arr) {   
     System.out.println(x);
      }
  for 和foreach 区别  foreach不能通过下标访问  x的作用是存放数组的元素

(3)用Arrays.toString(数组名);
用这个方法可以直接输出一维数组
Arrays.deepToString(数组名);
这个可以输出二维数组
4,拷贝数组的4种方法
(1)用for循环拷贝数组

   for (int i = 0; i < arr.length; i++) { 
           ret[i] = arr[i];    
            } 

(2),System.arraycopy(要拷贝的数组,从哪开始,拷贝到的数组,从哪开始,要拷贝的长度);没有返回值
(3),Arrays.copyOf(要拷贝的数组,和要拷贝的长度)
返回值是 static int 型的数组
System.arraycopy和Arrays.copyOf 方法的区别
Arrays.copyOf 的底层用法 还是调用了System.arraycopy这个方法
因为System.arraycopy这个方法执行速度快。
(4)数组名.clone;(不常用)
5,向数组里面填充元素(使得所有元素都赋值相同的值)
Arrays.fill(int[] a,int v)//向数组里填充 全部填充为v
Arrays.fill(int[] a,int from,int to,int v) [fron,to)
6,排序数组 (sort)
Arrays.sort(数组名);
使得数组 按升序排序
7,判断2个数组内容是否相等
Arrays.equals(arr1,arr2); boolean类型
8,二分法查找在数组a中查找v
Arrays.binarySearch(int [] a,int v);//查找
也可以自己实现二分法查找

 public static int binarySearch1 (int[] arr,int key) {
        int left = 0;
        int right = arr.length-1;
        while (left <= right) {
            int mid = (left + right) / 2;
            if (arr[mid] > key) {
               right = mid -1;
            }else if (arr[mid]== key) {
                return mid;
            }else {
                left = mid + 1;
            }

        }
        return -1;
    }
发布了55 篇原创文章 · 获赞 85 · 访问量 5138

猜你喜欢

转载自blog.csdn.net/lzh_99999/article/details/102640639