Java数组常见操作---初学者

1. 输入

一维数组

		Scanner input=new Scanner(System.in);
		int[] a=new int[5];
		for(int i=0;i<a.length;i++) {
			a[i]=input.nextInt();
		}

二维数组

		Scanner input=new Scanner(System.in);
		int[][] a=new int[5][5];
		for(int i=0;i<a.length;i++) {
			for(int j=0;j<a.length;j++)
				a[i][j]=input.nextInt();
		}

2.输出

		for(int i=0;i<a.length;i++) {
			System.out.println(a[i]);
		}
		或者
		System.out.println(Arrays.toString(a));

对于char类型的数组,可以直接使用一条语句打印⭐

		char[] c= {'J','A','V','A'};
		System.out.println(c);
		//输出Java

二维数组

		for(int i=0;i<a.length;i++) {
			for(int j=0;j<a[i].length;j++) {
				System.out.print(a[i][j]+" ");
			}
			System.out.println();
		}

3.求和 & 最大值

求和

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

最大值

		for(int i=0;i<a.length;i++) {
			if(a[i]>max)
				max=a[i];
		}

4.打乱和移动数组

打乱数组,生成随机数以达成随机打乱

		for(int i=0;i<a.length;i++) {
			int j=(int)(Math.random()*a.length); //[ 0 , a.length ) 
			int t=a[i];
			a[i]=a[j];
			a[j]=t;
		}

向左移动一格 , [1,2,3,4,5]—>[2, 3, 4, 5, 1]

		int t=a[0];
		for(int i=1;i<a.length;i++) {
			a[i-1]=a[i];
		}
		a[a.length-1]=t;

向右移动一格,[1,2,3,4,5]—>[5, 1, 2, 3, 4]

		int t=a[a.length-1];
		for(int i=a.length-2;i>=0;i--) {
			a[i+1]=a[i];
		}
		a[0]=t;

5.赋值数组

arr1=arr2;

----这只是将arr2的地址复制给了arr1,arr1原先所引用的数组就不能用了,会被JVM自动回收(垃圾回收)

a.使用循环一个一个的赋值

		int[] a= {1,2,3,4,5};
		int[] b=new int[a.length];
		for(int i=0;i<a.length;i++)
			b[i]=a[i];

b.使用System类的arraycopy()方法
arraycopy(源数组,起始位置,目标数组,起始位置,长度);

		System.arraycopy(a, 0, b, 0, 5);

6.数组查找

线性查找–数组可以有序也可以无序

		public static int seqSearch(int[] a,int value) {
		for(int i=0;i<a.length;i++) {
			if(a[i]==value)
				return i;
		}
		return -1;
	}

二分法查找–数组必须升序排序好

① 首先确定整个查找区间的中间位置 mid = ( left + right )/ 2
② 用待查关键字值与中间位置的关键字值进行比较;
若相等,则查找成功
若大于,则在后(右)半个区域继续进行折半查找
若小于,则在前(左)半个区域继续进行折半查找
③ 对确定的缩小区域再按折半公式,重复上述步骤。

	public static int binarySearch(int[] a,int value) {
		int low=0;
		int high=a.length-1;
		while(low<=high) {
			int mid=(low+high)/2;  //中间元素的下标
			if(a[mid]==value)
				return mid;
			else if(a[mid]>value)
				high=mid-1;
			else
				low=mid+1;
		}
		return -1;
	}

7.数组排序

选择排序
在arr[0]到arr[n-1]中选出最小(大)的的数与arr[0]交换位置,
在arr[1]到arr[n-1]中选出最小(大)的的数与arr[1]交换位置,
在arr[2]到arr[n-1]中选出最小(大)的的数与arr[2]交换位置,

		for(int i=0;i<a.length-1;i++) {
			int min=i;
			for(int j=i+1;j<a.length;j++) {
				if(a[j]<a[min]) {
					min=j;
				}
			}
			if(min!=i) {
				int t=a[i];
				a[i]=a[min];
				a[min]=t;
			}
		}

冒泡排序
比较相邻的元素,如果第一个比第二个大,就交换他们两个,重复执行

		for(int i=0;i<a.length;i++) {
			for(int j=0;j<a.length-i-1;j++) {
				if(a[j]>a[j+1]) {
					int t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
				}
			}
		}

8.java.util.Arrays

Ⅰ.排序

 - Arrays.sort(list)

Arrays.sort(list);–对一个数组排序,从小到大,可以对数值型或字符型数组进行排序,除了boolean类型

 - Arrays.sort(list,0,4)

Arrays.sort(list,0,4)-----指定范围的排序,对0到3下标排序,[0,4)
Ⅱ.二分查找

- Arrays.binarySearch(list,11)

Arrays.binarySearch(list,11);—必须提前升序排好
Ⅲ.比较数组元素是否相等

 - Arrays.equals(list1,list2)

Arrays.equals(list1,list2);-----true/false
Ⅳ.填充数组

 - Arrays.fill(arr,4)

Arrays.fill(arr,4);------给所有值赋值4,[4, 4, 4, 4, 4]

 - Arrays.fill(arr, 2,4,6)

Arrays.fill(arr, 2,4,6);----[2,4)(不包括4)
[0, 0, 6, 6, 0]
Ⅴ.快速显示数组

 int[] arr = {32154};
 System.out.print(arr);

直接将数组打印输出
输出:[I@7852e922 (数组的地址)

String str = Arrays.toString(arr); 
System.out.print(str);

Arrays类的toString()方法能将数组中的内容全部打印出来
输出:[3, 2, 1, 5, 4]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: commons-collections-3.2.2.jar是一个Java类库,它提供了许多用于处理集合对象的工具和数据结构。这个jar文件是Apache Commons项目的一部分,旨在提供一个通用而强大的集合工具包,以帮助开发者更轻松地处理集合数据。 commons-collections-3.2.2.jar中包含了许多常用的集合类,如List、Set、Map等,同时还提供了一些特殊的集合类,如袋子(Bag)、多键Map(MultiMap)等。这些集合类实现了许多常见的集合操作,如排序、过滤、转换等,使得开发者能够更方便地处理集合数据。 除了集合类外,commons-collections-3.2.2.jar还提供了一些其他的实用工具类,如迭代器(Iterator)、比较器(Comparator)等,帮助开发者更高效地操作集合对象。 commons-collections-3.2.2.jar的使用非常简单,只需将该jar文件添加到项目的classpath中即可。开发者可以通过导入相应的包名,使用其中的类和方法来操作集合对象。 总之,commons-collections-3.2.2.jar是一个功能丰富的Java类库,可以帮助开发者更轻松地处理集合对象。无论是对于初学者还是有经验的开发者来说,这个库都提供了许多便捷的方法和工具,使得集合操作更加简单高效。 ### 回答2: commons-collections-3.2.2.jar是一个Java类库,提供了一组有用的集合类和工具类,使得在开发过程中更方便地操作和处理集合对象。 commons-collections-3.2.2.jar包含了一些常用的集合类,例如List、Set、Map等,它们都实现了Java集合框架的接口,并提供了一些常用的操作方法,如添加、删除、查找等。这些集合类具有扩展性,可以根据需要自定义实现,也可以通过合适的适配器类将其转换为其他类型的集合。 除了基础的集合类之外,commons-collections-3.2.2.jar还提供了一些特殊用途的集合类和工具类。例如,有一个可以解决数组操作问题的类ArrayUtils,它提供了各种对数组进行操作的方法,如合并、比较、填充等。还有一个针对集合元素处理的工具类CollectionUtils,它提供了各种便利的方法,如过滤、转换、排序等。 commons-collections-3.2.2.jar对于Java开发者来说非常有用,可以帮助简化代码、提高开发效率。它提供了丰富的集合操作方法,可以快速完成一些常见的集合处理任务。通过使用这个库,开发者可以更加专注于业务逻辑的实现,而无需关心底层的集合操作细节。 总之,commons-collections-3.2.2.jar是一个功能强大的Java类库,提供了丰富的集合类和工具类,可以帮助开发者更轻松地操作和处理集合对象,提高开发效率。 ### 回答3: commons-collections-3.2.2.jar是一个Java库,用于提供一组常见的数据结构和算法。它是Apache Commons项目的一部分,由Apache Software Foundation提供和维护。 该库包含了许多功能强大且易于使用的集合类,如列表、队列、堆栈和映射等。这些集合类提供了许多有用的方法和工具,可以简化开发人员对集合数据的操作和管理。 此外,commons-collections-3.2.2.jar还提供了一些算法和工具类,如排序、查找、迭代和转换等。它们可以在处理集合数据时提供更高效和灵活的选择。 commons-collections-3.2.2.jar还具有高度可扩展性和灵活性。开发人员可以通过继承已有的集合类或实现相关接口来定制和扩展其功能。它还支持泛型和迭代器等先进的Java特性,使开发人员能够更好地利用现代Java开发的功能和优势。 总的来说,commons-collections-3.2.2.jar是一个强大而可靠的Java库,为开发人员提供了许多常用的数据结构和算法。它在提高开发效率和代码质量方面发挥了重要作用,并广泛应用于各种Java应用程序的开发中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值