精华内容
下载资源
问答
  • java数组之Arrays包带的一些方法的使用(包括Arrays.copyOfRange、Arrays.toString、Arrays.sort、Arrays.fill)等函数,还有二维数组的排序

    以下的每一个方法就是使用了一个甚至多个函数,方法名可以看出方法的作用,最后则是对二维数组进行一个排序:
    分别用了以下函数:

    int b[]=Arrays.copyOfRange(a, 0, a.length);
    //第一个参数是要复制的数组,第二个是起始位置,第三个是长度
    String content=Arrays.toString(a);//转换成字符串
    Arrays.sort(c);//排序C数组
    Arrays.fill(a, 6);//用同一个数字赋值整个数组
    
    package test;
    import java.util.Random;
    import java.util.Arrays;
    /**
     */
    public class Hello {
    
        public static void main(String[] args) {
            System.out.println("Hello World");
            Test test=new Test();
            test.doCopy();
            test.doChange();
            test.doSort();
            test.doSearch();
            test.doJudge();
            test.doTwoDimensionSort();
        }
    }
    class Test{
    	int a[]=new int[5];
    	void doCopy() {//复制
    		System.out.print("A数组为: ");
    		for(int i=0;i<a.length;i++) {
    			a[i]=(int)(Math.random()*100);
    			System.out.print(a[i]+" ");
    		}
    		int b[]=Arrays.copyOfRange(a, 0, a.length);
    		//复制数组
    		System.out.print("\r\n复制的B数组为: ");
    		for(int i=0;i<b.length;i++) {
    			System.out.print(b[i]+" ");
    		}
    	}
    	void doChange() {
    		String content=Arrays.toString(a);//转换成字符串
    		System.out.println("\r\nA转换后的字符串为 "+content);
    	}
    	void doSort() {
    		Arrays.sort(a);//对A排序
    		System.out.print("排序后的A字符串为: ");
    		System.out.print(Arrays.toString(a));
    	}
    	void doSearch() {//搜索前必须用sort排序
    		int c[]=new int[]{35,67,86,12,9,3,6,88,33,22,55,31};
    		Arrays.sort(c);
    		System.out.println("\r\n排序后的C数组如下:"+Arrays.toString(c));
    		int position=Arrays.binarySearch(c, 0, c.length, 33);
    		//寻找所在下标
    		System.out.println("数字33的位置下标为:"+position);
    	}
    	void doJudge() {//比较两数组是否相等
    		int b[]=new int[]{35,67,86,12,9};
    		int c[]=new int[]{35,67,86,12,9};
    		int d[]=new int[]{35,67,87,12,9};
    		System.out.println("新建的B数组为"+Arrays.toString(b));
    		System.out.println("新建的C数组为"+Arrays.toString(c));
    		System.out.println("新建的D数组为"+Arrays.toString(d));
    		System.out.println("B跟C比较的结果为:"+Arrays.equals(b, c));
    		System.out.println("B跟D比较的结果为:"+Arrays.equals(b, d));
    	}
    	void doFill() {
    		int b[]=new int[10];
    		Arrays.fill(a, 6);//用同一个数字赋值整个数组
    	}
    	void doTwoDimensionSort() {//此方法是对二维数组进行排序
    //		参考思路:
    //		先把二维数组使用System.arraycopy进行数组复制到一个一维数组
    //		然后使用sort进行排序
    //		最后再复制回到二维数组。
    		int b[][]=new int[5][8];
    		System.out.print("二维数组行数:"+b.length);//获取行数
    		System.out.print("  列数: "+b[0].length);//获取列数
    		for(int i=0;i<b.length;i++) {
    			for(int j=0;j<b[0].length;j++) {
    				b[i][j]=(int)(Math.random()*100);
    				//给二维数组赋值
    			}
    		}
    		System.out.println("\r\n二维数组值为:");
    		for(int i=0;i<b.length;i++) {
    			System.out.println(Arrays.toString(b[i]));
    		}
    		System.out.println("赋值后的一维数组为:");
    		int c[]=new int[b.length*b[0].length];
    		for(int i=0;i<b.length;i++) {
    			for(int j=0;j<b[0].length;j++) {
    				c[j+(b[0].length*i)]=b[i][j];
    			}
    		}
    		System.out.println(Arrays.toString(c));
    		Arrays.sort(c);
    		System.out.println("排序后的一维数组值为:");
    		System.out.println(Arrays.toString(c));
    		for(int i=0;i<b.length;i++) {
    			for(int j=0;j<b[0].length;j++) {
    				b[i][j]=c[j+(b[0].length*i)];
    			}
    		}
    		System.out.println("排序后的二维数组为:");
    		for(int i=0;i<b.length;i++) {
    			System.out.println(Arrays.toString(b[i]));
    		}
    	}
    }
    
    展开全文
  • import java.util.Arrays; public class Hello { public static void main(String[] args) { char[][] board = new char[3][3];... Arrays.fill(chs, '.'); } for (int i = 0; i < 3; i++) {
    import java.util.Arrays;
    public class Hello {
        public static void main(String[] args) {
            char[][] board = new char[3][3];
            for (char[] chs : board) {
                Arrays.fill(chs, '.');
            }
            for (int i = 0; i < 3; i++) {
                for (int j = 0; j < 3; j++) {
                    System.out.print(board[i][j]);
                }
            }
        }
    }
    
    

    控制台输出
    在这里插入图片描述
    关于Arrays.fill函数的用法可以看 我的这篇博客,简单易懂

    展开全文
  • 先上错误代码: public static void main(String[] args) { int[][] arr = new int[5][5]; Arrays.fill(arr,9999999); } ...Exception in thread "main" java.lang.... at java.util.Arrays.fill(Arrays.java:313

    先上错误代码:

    public static void main(String[] args) {
    
            int[][] arr = new int[5][5];
            Arrays.fill(arr,9999999);
        }

    错误信息为:

    Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
    	at java.util.Arrays.fill(Arrays.java:3130)
    	at com.company.Main.main(Main.java:12)

    这个主要是因为Arrays.fill只能对一维数组今天填充。要先正确的实现二维数组的填充,就需要我们循环进行赋值,代码如下:

    public static void main(String[] args) {
    
            int[][] arr = new int[5][5];
            for(int i=0; i<arr.length; i++){
                Arrays.fill(arr[i],9999999);
            }
    
            System.out.println(Arrays.deepToString(arr));
        }

    主要赋值的时候不要应用这种方式(当时就是踩了这个坑,忽视了传值、传地址之间的差别)

    public static void main(String[] args) {
    
            int[][] arr = new int[5][5];
            int[] arr1 = new int[5];
            Arrays.fill(arr1,99999);
            Arrays.fill(arr,arr1);
            System.out.println(Arrays.deepToString(arr));
            //虽然此时看起来达到了全部赋值99999的目的,但是当更改arr的某一个值时,
            //不同行的对应值都会发生改变,因为传递的arr1传的是地址而不是数值。
            arr[0][0] = 1;
            System.out.println(Arrays.deepToString(arr));
        }

    这时的运行结果为:

    [[99999, 99999, 99999, 99999, 99999], [99999, 99999, 99999, 99999, 99999], [99999, 99999, 99999, 99999, 99999], [99999, 99999, 99999, 99999, 99999], [99999, 99999, 99999, 99999, 99999]]
    [[1, 99999, 99999, 99999, 99999], [1, 99999, 99999, 99999, 99999], [1, 99999, 99999, 99999, 99999], [1, 99999, 99999, 99999, 99999], [1, 99999, 99999, 99999, 99999]]

     

    展开全文
  • Arrays.fill()方法 Arrays.fill(Object[] array, Object obj...初始化一个二维数组的问题 1. 错误使用 int[][] a = new int[3][4]; int[] ten = new int[4]; Arrays.fill(ten ,0); Arrays.fill(a, ten); //当修改(0,

    Arrays.fill()方法

    Arrays.fill(Object[] array, Object obj)
    Arrays.fill(Object[] array, int fromIndex, int toIndex, Object obj) //取头不取尾
    

    初始化一个二维数组的问题

    1. 错误使用

    int[][] a = new int[3][4];
    int[] ten = new int[4];
    Arrays.fill(ten ,0);
    Arrays.fill(a, ten);
    
    //当修改(0,0)位置的值时会发生如下错误
     a[0][0] = 1;
     1 0 0 0
     1 0 0 0
     1 0 0 0
    

    2. 正确方法

    int[][] a = new int[3][4];
    
    for (int[] temp: a){
    	Arrays.fill(temp, 0)
    }
    
    
    
    展开全文
  • Arrays.fill()并不能提高赋值的效率,在函数的内部也是用for循环的方式 实现的。 fill()函数源码: public static void fill(Object[] a, Object val) { for (int i = 0, len = a.length; i < len; i++) a[i] ...
  • package com.xxx.xxx; import java.util.Arrays; public class demo8 { /** * 1、初始化一维数组 使用... * 2、初始化二维数组 使用二维数组 * 3、填充替换数组元素 * @param args */ public st...
  • 二维数组赋值 用例1 用例2 特别用例 特别注意 参考 Fill说明 首先说明,Arrays.fill()并不能提高赋值的效率,在函数的内部也是用for循环的方式 实现的。 一种声明举例: public static void fill(int[] a...
  • package com.first; import java.util.Arrays; public class Score { public static void main(String[] args){ int[] scores=new int[10]; for(int score:scores){ System.out.printf("%2d",score); }
  • 在最短路径问题上遇到了一个问题,对于二维int数组 map[][],需要初始化为int的最大值,不想用双重循环赋初值,想用Arrays.fill()填充但是失败了。。。。。。 首先说明,Arrays.fill()并不能提高赋值的效率,在函数...
  • package 第3章; import java.until.*; public class 第3章a { public static void main(String[] args) { //打印不规则二维数组 final int MAX=10; int[][] odds=new int[MAX][]; for(int
  • Arrays.fill()方法

    千次阅读 2019-09-09 16:52:19
    用于一维数组、二维数组的初始化或者填充 对于一维数组和二维数组写点学习心得 在Java API 中的 public static void fill(Object[] a, int fromIndex, int toIndex, Object val)将指定的 Object 引用分配给指定 ...
  • 已知打印一维数组的API为System.out.println ( Arrays.toString ();,其参数为数组名或数组指针,其支持的数据类型有很多,如:int[]、char[]、byte[]等。 import java.util.Arrays; public class ArrayPrint { ...
  • 1.http://blog.sina.com.cn/s/blog_8e3f9ed80102vrr4.html Java通过fill()方法填充数组元素 2....
  • Java中Arrays.toString ()打印二维数组及Array数组的常用操作 关键词:java 数组 数组常用操作 空数组 空串 Arrays Arrays.toString () Arrays.deepToString() HashSet 文章目录Java中Arrays.toString ()打印二维...
  • 1:数组的声明 tpye[] arr_name type arr_name[] 数组是对象,数组中的元素是对象的属性 对象的属性没有初始化,系统会默认初始化 2:数组的初始化 int[] s=null;//声明数组 s=new int[10];//给数组分配空间...
  • 1 Arrays PS:Arrays位于java.util包下 1 int binarySearch(type[] a, type key); 使用二分法查询 key 元素在 a 数组中的索引,如果数组不包含这个值,则返回负数。使用前要求这个数组是升序排列,才能...
  • 定义一个二维数组是s[3][5],其在内存中表示如下图所示: 二维数组的应用 已知有3个班,每个班5人,请利用二维数组计算各班总成绩和平均分 System.out.println("请输入5名学生成绩:"); double[] score = new double...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,439
精华内容 2,575
关键字:

arrays.fill二维数组