how2j:JAVA学习笔记——DAY 5

1.增强型for循环

e.g.

int values [] = new int[]{18,62,68,82,65,9};
        //常规遍历
        for (int i = 0; i < values.length; i++) {
            int each = values[i];
            System.out.println(each);
        }
         
        //增强型for循环遍历
        for (int each : values) {
            System.out.println(each);
        }

注:增强型for循环只能用来取值,却不能用来修改数组里的值

格式

for(循环对象的类型 元素名: 对象名 ){
	语句
}

2.复制数组

​ 把一个数组的值,复制到另一个数组中。

System.arraycopy(src, srcPos, dest, destPos, length)

​ src: 源数组
​ srcPos: 从源数组复制数据的起始位置
​ dest: 目标数组
​ destPos: 复制到目标数组的起始位置
​ length: 复制的长度

e.g.

int[] a= {1,2,3,4,5};
		int[] b=new int[5];
				
		System.arraycopy(a, 0, b, 0, 3);	
		for(int i:b) {
			System.out.println(i);
		}
		

输出结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a81ibMw3-1636632088341)(C:\Users\26890\AppData\Roaming\Typora\typora-user-images\image-20211111135320826.png)]

3.二维数组

二维数组中的每一个元素都是一个一维数组,所以二维数组又叫数组的数组。

格式 e.g.

int b[][] = new int[][]{
   {1,2,3},
   {4,5,6},
   {7,8,9}
};

定义的一般形式

类型说明符 数组名[常量表达式][常量表达式]

e.g.

float a[3][4],b[5][6];//表示一个三行四列和一个五行六列的二维数组

注:二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再接着存放第二行的元素。

二维数组的引用

数组名[下标][下标]

数组元素可以出现在表达式中,也可以被赋值。e.g.

b[1][2]=a[2][3]/2;//表示数组a中第三行第二列的元素值的一半被赋给数组b中第一行第二列的元素。

注:在引用数组时,下标值应在已定义的数组大小的范围内。

二维数组的初始化

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12};//常用形式,分组直观

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//数据大时,会写成一片。容易遗漏,不易检查。

int a[3][4]={{1},{4,5}};//部分赋值,不赋值的默认为0

int a[3][4]={{1},{},{9};//同上

//int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};//两种方法等价

//int a[3][4]={{1},{},{9};
int a[][4]={{1},{},{9};//两种方法等价

3.Arrays类

Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能。大大提高了开发人员的工作效率。

关键字介绍
copyOfRange数组复制
toString()转换为字符串
sort排序
binarySearch搜索
equals判断是否相同
fill填充

①数组复制

int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
 
        // copyOfRange(int[] original, int from, int to)
        // 第一个参数表示源数组
        // 第二个参数表示开始位置(取得到)
        // 第三个参数表示结束位置(取不到)
        int[] b = Arrays.copyOfRange(a, 0, 3);

②转换为字符串

int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
        String content = Arrays.toString(a);
        System.out.println(content);

③排序

int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
        System.out.println("排序之前 :");
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println("排序之后:");
        System.out.println(Arrays.toString(a));

④搜索

注:在使用binarySearch之前,必须先使用sort进行排序。若数组中有多个数值相同的元素,那么查找结果是不确定的。

int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
 
        Arrays.sort(a);
 
        System.out.println(Arrays.toString(a));
        //使用binarySearch之前,必须先使用sort进行排序
        System.out.println("数字 62出现的位置:"+Arrays.binarySearch(a, 62));
    }

⑤判断是否相同

比较两个数组的内容是否相同。相同返回true,不同返回false。

 int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
        int b[] = new int[] { 18, 62, 68, 82, 65, 8 };
 
        System.out.println(Arrays.equals(a, b));

⑥填充

使用同一个值填充数组。

 int a[] = new int[10];
  
        Arrays.fill(a, 5);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值