• java数组案例讲解

    2017-06-16 23:03:14
    break的演示package xingqushi;import java.util.Scanner;public class ComplexLoop { public static void main(String[] args) { String[] names={"a","b","cc"}; System.out.println("please

    break的演示

    package xingqushi;
    
    import java.util.Scanner;
    
    public class ComplexLoop 
    {
    
        public static void main(String[] args) 
        {
            String[] names={"a","b","cc"};
            System.out.println("please inter the name:");
            Scanner scan=new Scanner(System.in);
            String name=scan.nextLine();
            scan.close();
            int i;
            for(i=0;i<=names.length-1;i++)
            {
                if(name.equals(names[i]))
                {
                    break;//结束循环
                }
            }
            System.out.print(i<3?i:-1);
        }
    }

    continue的操作

    package xingqushi;
    
    import java.util.Scanner;
    
    public class ComplexLoop 
    {
    
        public static void main(String[] args) 
        {
            int[] numbers={78,23,19,36,42,18,9,54,31,79,47};
            int sum=0;
            for(int i=0;i<numbers.length;i++)
            {
                if(numbers[i]%2>0)
                {
                    continue;//结束本次操作
                }else
                {
                    sum=sum+numbers[i];
                }
            }
            System.out.println(sum);
        }
    }
    展开全文
  • //a 第一种定义格式: ... //上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组 //b 第二种定义格式 //int[][] arr = new int[3][]; //int...
     	//a 第一种定义格式:
       // int[][] arr = new int[3][4]; arr里面包含3个数组   每个数组里面有四个元素
         //上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组
         //b 第二种定义格式
         //int[][] arr = new int[3][];
         //int[][] arr = new int[][4];  这是非法的,定义应该从高维到低维。
         //第二种方式和第一种类似,只是数组中每个元素的长度不确定
        //c 第三种定义格式
        //int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};
        //二维数组中定义了三个元素,这三个元素都是数组,分别为{1,2}、{3,4,5,6}、{7,8,9}
    public class sz_1{
    	public static void main(String[] args){
    		int[][] arr={{12,43,4},{23,64,23},{1},{64,76,34,2}};
    		int a=1;
    		for(int i=0;i<arr.length;i++){
    			System.out.print("第"+a+"组是:");
    			for(int j=0;j<arr[i].length;j++){
    				System.out.print(arr[i][j]+"\t");
    			}a++;
    			System.out.println();
    		}
    	}
    }
    
    展开全文
  • Java二维数组(案例:走迷宫)二维数组数组数组—二维数组的每一个元素是一个一维数组 定义方式:数据类型[][] 数组名 = new 数据类型[长度][长度]; 数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...,元素n},...

    Java二维数组(案例:走迷宫)

    二维数组

    数组的数组—二维数组的每一个元素是一个一维数组
    定义方式:

    数据类型[][] 数组名 = new 数据类型[长度][长度];
    数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...,元素n},
                                         {元素1,元素2...,元素n},
                                           ...,
                                         {元素1,元素2...,元素n}};
    

    二维数组在内存中的表现:
    这里写图片描述
    二维数组的应用
    二维数组的长度:数组名.length —每个一维数组:数组名[下标].length
    二维数组的遍历—两重for循环

            //遍历数组
            for(int i=0;i<array1.length;i++) {
                for(int j=0;j<array1[0].length;j++) {
                    System.out.print(array1[i][j] + "\t");
                }
                System.out.println();
            }
            //系统方法
            for(int i = 0;i<array1.length;i++) {
                System.out.println(Arrays.toString(array1[i]));
            }

    案例:走迷宫

    /*
     * 二维数组迷宫
     * 1.打印地图
     *  初始坐标(1,1),结束坐标(1,9)
     * 2.如何让0走起来
     *  通过修改横纵坐标
     * 3.循环输入
     */
    public class Demo02 {
        public static void main(String[] args) {
            //有八个一维数组,每个一维数组中有十个元素
            //array[0][0]
            char[][] array = {
                            //y   0   1   2   3   4   5   6   7   8   9
                                {'#','#','#','#','#','#','#','#','#','#'},//0 ----- x
                                {'#','0',' ',' ',' ',' ','#','#',' ',' '},//1
                                {'#','#',' ','#','#','#','#','#',' ','#'},//2
                                {'#',' ',' ',' ',' ','#','#','#',' ','#'},//3
                                {'#',' ','#','#',' ','#',' ',' ',' ','#'},//4
                                {'#',' ','#','#',' ','#',' ','#','#','#'},//5
                                {'#',' ',' ',' ',' ',' ',' ','#','#','#'},//6
                                {'#','#','#','#','#','#','#','#','#','#'} //7
                            };
            while(true) {
                printMaze(array);
                find0(array);
                String string=input();
                if(string.equals("输入错误")) {
                    System.out.println(string);
                }else {
                    move(string, array);
                }
                if(x == 1&&y==9) {
                    break;
                }
            }
            System.out.println("你赢了");
            sc.close();
        }
        //打印迷宫(传入迷宫)
        public static void printMaze(char[][] array) {
            for(int i=0;i<array.length;i++) {
                for(int j=0;j<array[0].length;j++) {
                    System.out.print(array[i][j]);
                }
                System.out.println();
            }
        }
        //接受键盘输入,做判断传出wasd或者输入错误
        public static String input() {
            String ch = sc.nextLine();
            if(ch.equals("a")||ch.equals("d")||ch.equals("w")||ch.equals("s")) {
                return ch;
            }else {
                return "输入错误";
            }
        }
        static Scanner sc =new Scanner(System.in);
        static int x=0,y=0;//静态变量存储0的坐标
        //传数组进去,找出0的坐标,存给静态变量x,y
        public static void find0(char[][]array) {
            for (int i = 0; i < array.length; i++) {
                for (int j = 0; j < array[0].length; j++) {
                    if(array[i][j]=='0') {
                        x=i;
                        y=j;
                    }
                }
            }
        }
        //将经过判断之后的键盘值传入(限定了wasd),根据输入操作数组
        //移动时要注意移动的方向不是#,如果是墙不移动
        public static void move(String string,char[][]array) {
            if (string.equals("a")&&array[x][y-1]!='#') {
                char temp = array[x][y-1];
                array[x][y-1] = array[x][y];
                array[x][y] = temp;
            }
            if (string.equals("s")&&array[x+1][y]!='#') {
                char temp = array[x+1][y];
                array[x+1][y] = array[x][y];
                array[x][y] = temp;
            }
            if (string.equals("d")&&array[x][y+1]!='#') {
                char temp = array[x][y+1];
                array[x][y+1] = array[x][y];
                array[x][y] = temp;
            }
            if (string.equals("w")&&array[x-1][y]!='#') {
                char temp = array[x-1][y];
                array[x-1][y] = array[x][y];
                array[x][y] = temp;
            }
    
        }
    
    }
    
    展开全文
  • Java对象数组代码案例

    2016-03-28 21:21:13
    java对象数组案例
    import java.util.Arrays;
    class test5{
        public static void main(String[]args){
            HeroManager h1=new HeroManager();
            h1.add(new Hero(1,"1","nan"));
            h1.add(new Hero(2,"2","nan"));
            h1.add(new Hero(3,"3","nan"));
            h1.add(new Hero(4,"4","nan"));
            h1.delete(2);
            h1.list();
        }
    }
    class HeroManager{
        private Hero[]hero=new Hero[3];
        private int count=0;//表示当前的下标
        //实现动态数组
        public void add(Hero h){
            //表示当前已经存满,要进行扩充
            if(count>=hero.length){
                //扩充的算法 2倍 1/2倍
                int newLen=hero.length*3/2+1;
                hero=Arrays.copyOf(hero,newLen);
            }
            hero[count]=h;
            count++;
        }
        public Hero find(int id){
            for(int i=0;i<count;i++){
                if(hero[i].getId()==id){
                    return hero[i];
                }
            }
            return null;
        }
        public void delete(int id){
            //a b c d e null null
            //a b d e null null null 
            for(int i=0;i<count;i++){
                if(hero[i].getId()==id){
                    for(int j=i;j<count-1;j++){
                        hero[j]=hero[j+1];
                    }
                    hero[count-1]=null;
                    count--;
                    break;
                }
            }
        }
        public void update(Hero hero){
            Hero h=find(hero.getId());
            if(h!=null){
                h.setName(hero.getName());
                h.setSex(hero.getSex());
            }
        }
        public void list(){
            for(int i=0;i<count;i++){
                hero[i].print();
            }
        }
    }
    class Hero{
            private String name;
            private String sex;
            private int id;
            public String getName(){
                return name;
            }
            public void setName(String name){
                this.name=name;
            }
            public String getSex(){
                return sex;
            }
            public void setSex(String sex){
                this.sex=sex;
            }
            public int getId(){
                return id;
            }
            public void setId(int id){
                this.id=id;
            }
            public void print(){
                System.out.println("name:"+name+",sex"+sex+",id:"+id);
            }
            public Hero(int id,String name,String sex){
                this.id=id;
                this.name=name;
                this.sex=sex;
            }
            public Hero(){
    
            }
    }
    展开全文
  • Java二维数组

    2019-05-08 19:39:04
    Java 中二维数组被看作数组数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的...

    在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的语法如下:
    type array[][];
    type[][] array;
    其中,type 表示二维数组的类型,array 表示数组名称,第一个中括号表示行,第二个中括号表示列。
    下面分别声明 int 类型和 char 类型的数组,代码如下:

    1. int[][] age;
    2. char[][] sex;
      初始化二维数组
      二维数组可以初始化,和一维数组一样,可以通过3种方式来指定元素的初始值。这 3 种方式的语法如下:
      array=new type[][]{值 1,值 2,值 3,…,值 n};
      array=new type[][]{new 构造方法(参数列),…};
      type[][] array={{第1行第1列的值,第1行第2列的值,…},{第2行第1列的值,第2行第2列的值,…},…};
      例 1
      使用第一种方式声明 int 类型的二维数组,然后初始化该二维数组。代码如下:
    3. int[][] temp;
    4. temp=new int[][]
    5. {
    6.  {1,2},{3,4}
      
    7. };

    上述代码创建了一个二行二列的二维数组 temp,并对数组中的元素进行了初始化。图 1 所示为该数组的内存结构。

    图1 二维数组内存结构

    使用第二种方式声明 int 类型的二维数组,然后初始化该二维数组。代码如下:

    1. int[][] temp;
    2. temp=new int [][]
    3. {
    4.  {new int(1),new int(2)},{new int(3),new int(4)}
      
    5. };

    使用第三种方式声明 int 类型的二维数组,并且初始化数组。代码如下:

    1. int[][] temp={{1,2},{3,4}};
      获取单个元素
      在上节使用 3 种方式创建并初始化了一个二行二列的 int 类型数组 temp。当需要获取二维数组中元素的值时,也可以使用下标来表示。语法如下:
      array[i-1][j-1];

    其中,array 表示数组名称,i 表示数组的行数,j 表示数组的列数。例如,要获取第二行第二列元素的值,应该使用 temp[1][1]来表示。这是由于数组的下标起始值为 0,因此行和列的下标需要减 1。
    例 2
    通过下标获取 class_score 数组中第二行第二列元素的值与第四行第一列元素的值。代码如下:

    1. public static void main(String[] args)
    2. {
    3.  double[][] class_score={{10.0,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
      
    4.  System.out.println("第二行第二列元素的值:"+class_score[1][1]);
      
    5.  System.out.println("第四行第一列元素的值:"+class_score[3][0]);
      
    6. }

    执行上述代码,输出结果如下:
    第二行第二列元素的值:98.0
    第四行第一列元素的值:99.5
    获取全部元素
    在一维数组中直接使用数组的 length 属性获取数组元素的个数。而在二维数组中,直接使用 length 属性获取的是数组的行数,在指定的索引后加上 length(如 array[0].length)表示的是该行拥有多少个元素,即列数。

    如果要获取二维数组中的全部元素,最简单、最常用的办法就是使用 for 语句。
    例 3
    使用 for 循环语句遍历 double 类型的 class_score 数组的元素,并输出每一行每一列元素的值。代码如下:

    1. public static void main(String[] args)
    2. {
    3.  double[][] class_score={{100,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5 }};
      
    4.  for(int i=0;i<class_score.length;i++)
      
    5.  {    //遍历行
      
    6.      for(int j=0;j<class_score[i].length;j++)
      
    7.      {
      
    8.          System.out.println("class_score["+i+"]["+j+"]="+class_score[i][j]);
      
    9.      }
      
    10. }
      
    11. }

    上述代码使用嵌套 for 循环语句输出二维数组。在输出二维数组时,第一个 for 循环语句表示以行进行循环,第二个 for 循环语句表示以列进行循环,这样就实现了获取二维数组中每个元素的值的功能。

    执行上述代码,输出结果如下所示。
    class_score[0][0]=100.0
    class_score[0][1]=99.0
    class_score[0][2]=99.0
    class_score[1][0]=100.0
    class_score[1][1]=98.0
    class_score[1][2]=97.0
    class_score[2][0]=100.0
    class_score[2][1]=100.0
    class_score[2][2]=99.5
    class_score[3][0]=99.5
    class_score[3][1]=99.0
    class_score[3][2]=98.5
    例 4
    假设有一个矩阵为 5 行 5 列,该矩阵是由程序随机产生的 10 以内数字排列而成。下面使用二维数组来创建该矩阵,代码如下:

    1. public class Test11
    2. {
    3.  public static void main(String[] args)
      
    4.  {
      
    5.      //创建一个二维矩阵
      
    6.      int[][] matrix=new int[5][5];
      
    7.      //随机分配值
      
    8.      for(int i=0;i<matrix.length;i++)
      
    9.      {
      
    10.         for(int j=0;j<matrix[i].length;j++)
      
    11.         {
      
    12.             matrix[i][j]=(int)(Math.random()*10);
      
    13.         }
      
    14.     }
      
    15.     System.out.println("下面是程序生成的矩阵\n");
      
    16.     //遍历二维矩阵并输出
      
    17.     for(int k=0;k<matrix.length;k++)
      
    18.     {
      
    19.         for(int g=0;g<matrix[k].length;g++)
      
    20.         {
      
    21.             System.out.print(matrix[k][g]+"");
      
    22.         }
      
    23.         System.out.println();
      
    24.     }
      
    25. }
      
    26. }

    在该程序中,首先定义了一个二维数组,然后使用两个嵌套的 for 循环向二维数组中的每个元素赋值。其中,Math.random() 方法返回的是一个 double 类型的数值,数值为 0.6、0.9 等,因此乘以 10 之后为 10 以内的整数。最后又使用了两个嵌套的 for 循环遍历二维数组,输出二维数组中的值,从而产生矩阵。

    运行该程序的结果如下所示。
    34565
    96033
    48741
    10583
    63985
    获取整行元素
    除了获取单个元素和全部元素之外,还可以单独获取二维数组的某一行中所有元素的值,或者二维数组中某一列元素的值。获取指定行的元素时,需要将行数固定,然后只遍历该行中的全部列即可。
    例 5
    编写一个案例,接收用户在控制台输入的行数,然后获取该行中所有元素的值。代码如下:

    1. public static void main(String[] args)
    2. {
    3.  double[][] class_score={{100,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
      
    4.  Scanner scan=new Scanner(System.in);
      
    5.  System.out.println("当前数组只有"+class_score.length+"行,您想查看第几行的元素?请输入:");
      
    6.  int number=scan.nextInt();
      
    7.  for(int j=0;j<class_score[number-1].length;j++)
      
    8.  {
      
    9.      System.out.println("第"+number+"行的第["+j+"]个元素的值是:"+class_score[number-1][j]);
      
    10. }
      
    11. }

    执行上述代码进行测试,输出结果如下所示。
    当前数组只有4行,您想查看第几行的元素?请输入:
    3
    第3行的第[0]个元素的值是:100.0
    第3行的第[1]个元素的值是:100.0
    第3行的第[2]个元素的值是:99.5
    获取整列元素
    获取指定列的元素与获取指定行的元素相似,保持列不变,遍历每一行的该列即可。
    例 6
    编写一个案例,接收用户在控制台中输入的列数,然后获取二维数组中所有行中该列的值。代码如下:

    1. public static void main(String[] args)
    2. {
    3.  double[][] class_score={{100,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
      
    4.  Scanner scan=new Scanner(System.in);
      
    5.  System.out.println("您要获取哪一列的值?请输入:");
      
    6.  int number=scan.nextInt();
      
    7.  for(int i=0;i<class_score.length;i++)
      
    8.  {
      
    9.      System.out.println("第 "+(i+1)+" 行的第["+number+"]个元素的值是"+class_score[i][number]);
      
    10. }
      
    11. }

    执行上述代码进行测试,如下所示。
    您要获取哪一列的值?请输入:
    2
    第 1 行的第[2]个元素的值是99.0
    第 2 行的第[2]个元素的值是97.0
    第 3 行的第[2]个元素的值是99.5
    第 4 行的第[2]个元素的值是98.5

    展开全文
  • 案例原创,有扩展 如何实现数组的复制? 复制数组的方法: 在JAVA里面,可以用复制语句“A=B”给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;...
  • Java中的对象数组

    2019-05-09 22:05:36
    Java对象数组 在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;而自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对其赋值、引用等操作,如果没有单独对每个对象元素创建,会...
  • 为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的...在 Java 中二维数组被看作数组数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组Java 并不直接支持二维数组,...
  • java中创建数组的方式 案例 int[] array = new int[10]; /* 赋值号左侧: int: 告知编译器,这里创建定义的是一个int类型数组,有且只能保存int类型数据,保 证数据类型一致化 []: 1. 告知编译器,当前...
  • Java 反射操作数组

    2018-07-13 18:11:51
    引用类型包含类,接口,数组,前面介绍了两者,接下来介绍反射数组。 反射对数组操作,是通过Array类来完成的,这里对该类简单介绍。 Array类常用API: get(Object array,int index):获取数组中指定位置的内容。 ...
  • 浅析java之对象数组

    2012-12-15 21:39:16
    原文信息:作者 韩芝萍 教育教学论坛·旬 2012年第4期 xiaogugood My Point: 关键点: 在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;而自定义对象数组,需要对数组中的每个对象...
  • 1- 对象数组概述 基本类型的数组:存储的元素为基本类型 int[] arr={1,2,3,4} 对象数组:存储的元素为引用类型 Student[] stus=new Student[3]; 解释:: Student代表一个自定义类 ...2- 对象数组案例 创建一个...
  • java基础数组案例

    2017-09-12 21:35:38
    案例1 1,合并一个数组 package com.hp.tow; import java.util.Arrays; public class demo11 {  public static void main(String[] args) {  int arr1[]={1,2,3};  int arr2[]={4,5};  int arr3[]=new ...
  • Java中使用数组的例子

    2009-07-27 14:02:00
    //Java中使用数组的例子 class MyClass{ public static void main(String args[]){ int x[]=new int[10]; for(int i=0;i;i++){ x[i]=i; } for(int j=1;j;j++){ System.out.println("outcom
  • Java中如何返回数组类型(且数组元素在方法内部输入)
  • 根据byte数组,生成文件 package com.rfpay.scheduled; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org....
  • java数组 学习总结

    2016-06-21 11:06:44
    为什么需要数组。当我们定义一个变量时可以使用一个变量名表示,但是如果出现很多的变量我们分别起变量名代替表示存储就比较麻烦了,为了解决这样的问题我们采用数组的形式表示存储,使用下标表示每个变量。
  • 对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 (2)案例: 用数组存储5个学生对象,并遍历数组。... * D:把C步骤的元素,放到数组中。 * ...
  • Java数组操作实例

    2019-03-21 16:24:04
    使用sort()方法对Java数组进行排序,及如何使用 binarySearch() 方法来查找数组的元素, 这边我们定义了 printArray() 方法来打印数组 package com.csu.test; import java.util.Arrays; public class Test { ...
  • 介绍数组常用的方法和具体...2、通过 Collection 类的 Collection.max() 和 Collection.min() 方法来查找数组中的最大和最小值:下面举例演示反转和找最大最小值:import java.util.Arrays; import java.util.Coll...
1 2 3 4 5 ... 20
收藏数 56,127
精华内容 22,450