数组打印、扩容、拷贝、截取

本文详细介绍了如何使用Java的foreach、for循环高效打印数组,探讨了数组扩容与拷贝的方法,以及Arrays.sort()的排序功能。此外,还涉及到了Unicode编码和不同进制转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打印数组:
使用foreach打印数组:

		int[] number=new int[] {10,12,15,14};
		for (int i : number) {
			System.out.print(i+"\t");
		}

使用for循环打印数组:

		int[] number=new int[] {10,12,15,14};
		for (int i = 0; i < number.length; i++) {
			System.out.print(number[i]+"\t");
		}

使用数组的大小打印:
比较僵硬,死板

		int[] number=new int[] {10,12,15,14};
		for (int i = 0; i < 4; i++) {
			System.out.print(number[i]+"\t");
		}

使用Arrays.toString(数组名)打印

		int[] number=new int[] {10,12,15,14};
		System.out.println(Arrays.toString(number));

数组的扩容和拷贝:
数组的长度是固定的,如果需要添加多个元素,那么就需要将原来的数组容量变大,就是创建一个新的数组
进行使用.

  1. 数据类型[] 数组名 = Arrays.copyOf(旧数组名,拷贝后的新长度) 数据类型和旧数组名的数据类型保持一致
  2. 原数组名 = Arrays.copyOf(旧数组名,拷贝后的新长度)
public static void main(String[] args) {
		String[] name=new String[3];
		name[0]="小贾";
		name[1]="小易";
		name[2]="小丁";
		System.out.println("name的数组"+Arrays.toString(name));
		System.out.println("name长度为"+name.length);
		System.out.println("===================================");
		//  1
		/*String[] name1=Arrays.copyOf(name,name.length+1);
		name1[name1.length-1]="小吴";
		System.out.println("name1的数组"+Arrays.toString(name1));
		System.out.println("name1长度为"+name1.length);
		*/
		//  2
		name=Arrays.copyOf(name,name.length+1);
		name[name.length-1]="小吴";
		System.out.println("name1的数组"+Arrays.toString(name));
		System.out.println("name1长度为"+name.length);
	}

截取
格式:System.arraycopy(arg0, arg1, arg2, arg3, arg4);

  1. arg0:要截取的数组
  2. arg1:从什么位置开始截取 (数组下标)
  3. arg2:截取数据要放到的数组
  4. arg3:要放到的位置 (数组下标)
  5. ary4:截取的长度
		int[] ary1=new int[] {12,15,20,26,30};
		int[] ary2=new int[10];
		//从数组ary1的下表为2开始截取,截取的长度为2,截取的数据放到数组ary2的下表为1的位置
		System.arraycopy(ary1, 2, ary2, 1, 2);
		System.out.println(Arrays.toString(ary2));

一个排序:系统自带的排序
语法:Arrays.sort(数组名)

		int[] ary1=new int[] {12,15,20,26,30};
		Arrays.sort(ary1);
		System.out.println(Arrays.toString(ary1));//[12, 15, 20, 26, 30]

unicode:每一个汉字都有对应的一个unicode码,该码是以16进制的方式表示出来的

		System.out.printf("16进制输出:"+"%010x\n",(int)'静');
		System.out.println((int)'静');//以十进制输出静的数值
		System.out.println((char)38745);//默认以十进制打印输出
		char a=0x9759;//静的unicode值
		System.out.println(a);//根据unicode值找到对应的值并输出  静

如果想打印十六、八、二进制的需要在所赋值前面加修饰符,凡是没有前缀修饰的数字,均为十进制数字

  1. 二进制范围:0、1
  2. 八进制范围:0、1、2、3、4、5、6、7
  3. 十进制范围:0、1、2、3、4、5、6、7、8、9
  4. 十六进制范围:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
int a=100;//100前面没有修饰符,十进制
int a1=0x100;//100前面有修饰符0x(零x),十六进制  ,x的大小写不限定
int a2=0100;//100前面有修饰符0(零),八进制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值