java-数组

1.一维数组的三种书写方式

     int[ ] array1 = new int[3];

     int[ ] array2 = new int[ ]{1,2,3};

     int[ ] array3 = {1,2,3};

2. 二维数组的三种书写方式

int[][] array4 = new int[3][4];
int[][] array5 = new int[][]{{1,2,3,4},{2,3,4},{4,5,6}};
int[][] array6 = new int[3][];//array6为交错数组
array6[0] = new int[]{1,2,3,4};
array6[1] = new int[]{2,3,4};
array6[2] = new int[]{4,5,6};

3. 拷贝函数(拷贝数组和原数组地址不同,拷贝函数创建新的对象)

    (1)深度拷贝:可以将对象的值和对象的内容拷贝

    (2)浅度拷贝:浅拷贝是指对对象引用的拷贝

    (3)三种拷贝方式:1)克隆方法: int[ ] array2 = array1.clone();   //将array1数组拷贝到array2数组中            
                                  2)类库Arrays: int array3 = Arrays.copyof(array1,array1.length);   //Arrays.copyof的参数分别为array1数组、array1数组的长度

                            **   3)System.arraycopy: System.arraycopy(array1, 0, array3, 0, length);  //从array1的第0个元素往array3的第0个元素拷,拷length个长度

                                     //运行在本地操作系统上,效率高,大数据时用此方法

//拷贝一维数组
int[] array7 = array3.clone();
int[] array8 = Arrays.Copyof(array3,array3.length);
int[] array9 = new int[array3.length];
System.arraycopy(array3,0,array9,0,array3.length); //从前往后拷
//用一个一维数组clone一个二维数组
int[][] array10 = new int[][]{};
for(int i=0;i<array3.length;i++){
    array10 = array3[i].clone();
}

4. 打印数组元素
    (1)用for循环做打印,for(int i=0;i<array1.length;++i)
    (2)用foreach做打印,foreach:for(val:array1)  //一维数组
//foreach遍历二维数组
for(int[] data : array5){
     for(int val : data){
	     System.out.print(val + " ");
	 }
	 System.out.println();
}
    (3)打印一维数组:System.out.println(Arrays.toString(array1));
        打印二维数组:System.out.println(Arrays.deepToString(array1));
//一维/二维数组元素打印
Arrays.sort(array3); //排序
System.out.println(Arrays.toString(array3)); //打印
Arrays.binarySearch(array3,value); //返回array3排序后value所在的下标
Arrays.fill(array3,-1); //全部初始化为-1

System.out.println(Arrays.deepToString(array5));

5. java里的类库
    Arrays:数组的算法类库
      int[] array1 = new int[5];  //自动用0填充
      Arrays.fill(array1,100);  //快速填充,填充到100
      for(int i=0;i<array1.length;++i){
	   System.out.println(array1[i] + " ");
      }
	
      int[] array2 = new int[]{1,2,3,4,5};
      int[] array3 = {1,2,3,4,5};
      int[] array4 = {1,2,3,4,5};
  
      System.out.println(array3 == array4);   //比较地址
      System.out.println(Arrays.equals(array3,array4));  //比较数组的值
      System.out.println(Arrays.toString(array3));   //打印数组元素
      Arrays.sort(array2);  //排序,默认由小到大
      System.out.println(Arrays.toString(array2));
	
      int index = Arrays.binarySeach(array2,12);  //查找
      System.out.println("12 index is" + index);
	  
      Arrays.sort(array3); //排序
      System.out.println(Arrays.toString(array3)); //打印
      Arrays.binarySearch(array3,value); //返回排序后value所在的下标
      Arrays.fill(array3,-1); //全部初始化为-1





6. 可变参函数:将参数处理为数组

public static int sum(int... args){
        return 0;
    }
public static int sum(int... args){
        int sum = 0;
	for(int i=0;i<args.length;i++){
		sum += args[i];	
	}
	return sum;
    }

public static void main(String[] args){
        System.out.println(sum(1,2));
	System.out.println(sum(1,2,3));
    }






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值