JAVA-SE基础篇-Arrays

JAVA-SE基础篇-Arrays

/**
 * Arrays
 * 知识点
 * 1.
 * 		copyOfRange(int[] original,int from,int to);
//		int[] original 第一个参数表示原数组;
//		int from 第二个参数表示开始位置(取得到);
//		int to 第三个参数表示结束位置(取不到);
		
	重点:int b[]=Arrays.copyOfRange(a, 0, 3);
		System.out.println(Arrays.toString(b));
		
 * 2.
 *      //第二种显示数组方法  Arrays.toString(数组名);
 *      System.out.println(Arrays.toString(a));
 * 
 * 3.   //从小到大排序     Arrays.sort(数组名);
		Arrays.sort(a);
 * 
 * 4.   int a[]=new int[] {10,34,56,23,98};
		Arrays.sort(a);
		System.out.println(Arrays.toString(a));
		//使用binarySearch之前,必须先使用sort进行排序;否则无法给出正确的位置!!!!!!
		System.out.println("数字23出现的位置:"+Arrays.binarySearch(a, 23));
 * 
 * 5.   //比较两个数组的内容是否相同
		//第二个数组最后一个元素是 8 ,,和第一个数组不一样,所以结果返回是 Flase
		int a[]=new int[] {23,24,45,76,7};
		int b[]=new int[] {23,24,45,76,8};
		System.out.println(Arrays.equals(a, b));  //输出的结果是true和Flase
 * 
 * 6.   //使用同一个值,填充整个数组
		int a[]=new int[5];
		Arrays.fill(a, 5);
		System.out.println(Arrays.toString(a));
 * 
 * 7.   //复制二维数组里面的内容到一维数组,再返回去!!!
 *      System.arraycopy(b, i*a[i].length, a[i], 0, a[i].length);
 *   
 * @author Administrator
 *
 */
public class TestArrays {
	public static void main(String[] args) {
		test01();
		System.out.println("###################");
		test02();
		System.out.println("###################");
		test03();
		System.out.println("###################");
		test04();
		System.out.println("###################");
		test05();
		System.out.println("###################");
		test06();
		System.out.println("###################");
		test07();
		System.out.println("###################");
		test08();
		
	}
	
	//数组复制         int b[]=Arrays.copyOfRange(int [], int from,int to);
	//        system.arraycopy(int [a], 起始位置 , int [b] , 复制长度 );
	public static void test01() {
		int a[]=new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i]=(int)(Math.random()*100);
		}
		System.out.println(Arrays.toString(a));
		System.out.println("第一种复制数组方法:");
		
//		copyOfRange(int[] original,int from,int to);
//		int[] original 第一个参数表示原数组;
//		int from 第二个参数表示开始位置(取得到);
//		int to 第三个参数表示结束位置(取不到);
		
		int b[]=Arrays.copyOfRange(a, 0, 3);
		System.out.println(Arrays.toString(b));
		
		
		System.out.println("第二种复制数组方法:");
		
//		 	System.arraycopy(src, srcPos, dest, destPos, length);
//		   	System.arraycopy(a, 0, b, 0, 5);
//		            把数组a 从0开始复制到数组b的起始位置0, 复制数组a的5个元素
//		    
//		   	src:原数组
//		   	srcPos:从原数组复制数据的起始位置
//		   	dest:目标数组
//		   	destPos:复制到目标数组的起始位置
//		   	length:复制长度
				
		int c[]=new int[4];
		System.arraycopy(a, 0, c, 0, 4);
		System.out.println(Arrays.toString(c));
	
	}
	  
	//转换为字符串                                  Arrays.toString(数组名);
	public static void test02() {
		int a[]=new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i]=(int)(Math.random()*100);
		}
		
		//第一种显示数组方法   for循环
	    System.out.println("增强for循环:");
		for (int i : a) {
			System.out.print(i+"  ");
		}
		System.out.println();
		System.out.println("一般for循环:");
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i]+"  ");
		}
		System.out.println();
		//第二种显示数组方法  Arrays.toString(数组名);
		System.out.println("Arrays.toString(数组名):");
		//第一种书写方式
		String content=Arrays.toString(a);
		System.out.println(content);
		//第二种书写方式
		System.out.println(Arrays.toString(a));
	
	}
	
	//排序
	public static void test03() {
		
		int a[]=new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i]=(int)(Math.random()*100);
		}
		System.out.println("排序前数组:");
		System.out.println(Arrays.toString(a));
		
		//从小到大排序     Arrays.sort(数组名);
		Arrays.sort(a);
		System.out.println("排序后数组:");
		System.out.println(Arrays.toString(a)); 
	
	}
	
	//搜索
	public static void test04() {
		
		int a[]=new int[] {10,34,56,23,98};
		Arrays.sort(a);
		System.out.println(Arrays.toString(a));
		//使用binarySearch之前,必须先使用sort进行排序;
		System.out.println("数字23出现的位置:"+Arrays.binarySearch(a, 23));
	
	}
	
	//判断是否相同
	public static void test05() {
		//比较两个数组的内容是否相同
		//第二个数组最后一个元素是 8 ,,和第一个数组不一样,所以结果返回是 Flase
		int a[]=new int[] {23,24,45,76,7};
		int b[]=new int[] {23,24,45,76,8};
		System.out.println(Arrays.equals(a, b));  //输出的结果是true和Flase
		
	}
	
	//填充
	public static void test06() {
		//使用同一个值,填充整个数组
		int a[]=new int[5];
		Arrays.fill(a, 5);
		System.out.println(Arrays.toString(a));
	}
	
	//测试       二维数组转化二维数组后,进过排序,再转化为二维数组  方法一
	public static void test07() {
		int a[][]=new int[5][8];
		int n=0,m=0;
		int b[]=new int[40];
	    System.out.println("这个随机的二维数组是:");
		for (int i = 0; i <5; i++) {
			for (int j = 0; j <8; j++) {
				a[i][j]=(int)(Math.random()*100);
				b[m++]=a[i][j];
				System.out.print(a[i][j]+"\t");
				n++;
				if (n>=5) {
					System.out.println();
					n=0;
				}
			}
		}
		//把二维数组里面的数整合到一维数组内;
		System.out.println("把二维数组里面的数整合到一维数组内:");
		System.out.println(Arrays.toString(b));
		System.out.println("对一维数组进行从小到大排序:");
		Arrays.sort(b);
		System.out.println(Arrays.toString(b));
		
		System.out.println("经过排序后的二维数组:");
		//复制一维数组里面的内容,逐一放入到二维数组里面:  方法一:
		System.out.println("方法一:");
		for (int i = 0; i <5; i++) {			
			for (int j = 0; j <8; j++) {	
				
				//重点!!!!			
				System.arraycopy(b, i*a[i].length, a[i], 0, a[i].length);
				
				System.out.print(a[i][j]+"\t");
				n++;
				if (n>=5) {
					System.out.println();
					n=0;
				}
			}
		}			
	}
	
	//测试       二维数组转化二维数组后,进过排序,再转化为二维数组  方法二
	public static void test08() {
		int a[][]=new int[5][8];
		int n=0,m=0;
		int b[]=new int[40];
	    System.out.println("这个随机的二维数组是:");
		for (int i = 0; i <5; i++) {
			for (int j = 0; j <8; j++) {
				a[i][j]=(int)(Math.random()*100);
				b[m++]=a[i][j];
				System.out.print(a[i][j]+"\t");
				n++;
				if (n>=5) {
					System.out.println();
					n=0;
				}
			}
		}
		//把二维数组里面的数整合到一维数组内;
		System.out.println("把二维数组里面的数整合到一维数组内:");
		System.out.println(Arrays.toString(b));
		System.out.println("对一维数组进行从小到大排序:");
		Arrays.sort(b);
		System.out.println(Arrays.toString(b));
		
		System.out.println("经过排序后的二维数组:");
		System.out.println("方法二:");
		
		//重点!!
		for (int i = 0,k=0; i <5; i++) {
			System.arraycopy(b, k, a[i], 0, a[i].length);
			k+=8;
		}
		//定义一个字符串,目的为了放置数组;
		String content=null;
		for (int i = 0; i < 5; i++) {
			content=Arrays.toString(a[i]);
			System.out.println(content);
			//==System.out.println(Arrays.toString(a[i]));
		}
	}
	 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值