精华内容
下载资源
问答
  • Java对象数组

    万次阅读 多人点赞 2018-09-03 00:24:52
    所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象...

    所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。

     

    对象数组的声明

    先定义,再开辟空间

    类名称 对象数组名[] = null; 
    对象数组名 = new 类名称[长度];

     定义并开辟数组

    类名称 对象数组名[] = new 类名称[长度];
    

    在声明对象数组后 ,必须对每个数组成员进行实例化话 才能直接使用,否则报空指针异常!

     

    动态初始化

    先声明数组,然后对数组中的每一个对象必须分别进行实例化操作。

    public class Test {
        public static void main(String[] args) {
            Person[] ps = new Person[3]; // 声明一个对象数组,里面有三个对象
            System.out.println("---------------数组声明后-------------------");
            for (int x = 0; x < ps.length; x++) {
                System.out.print(ps[x] + " "); // 循环输出
            }
            // 创建3个人,并实例化
            Person p1 = new Person("jerry", 18);
            Person p2 = new Person("tom", 20);
            Person p3 = new Person("rose", 25); 
            ps[0] = p1; // 实例化第一个元素
            ps[1] = p2; // 实例化第二个元素
            ps[2] =p3; // 实例化第三个元素
            System.out.println("\n---------------对象实例化-------------------");
            for (int x = 0; x < ps.length; x++) {
                System.out.print(ps[x] + " ");
            }
        }
    }
    class Person {
        private String name; // 姓名属性
        private int age; // 年龄属性
        public Person(String name, int age) { // 通过构造方法设置内容
            this.name = name; // 为姓名赋值
            this.age = age; // 为年龄赋值
        }
        @Override
        public String toString() {
            return "Person [name=" + name + ", age=" + age + "]";
        }
    }

    执行结果如下:

    ---------------数组声明后-------------------
    null	null	null	
    ---------------对象实例化-------------------
    Person [name=jerry, age=18] Person [name=tom, age=20] Person [name=rose, age=25]	

    下面是对上面对象数组初始化操作的内存图解:

     

    静态初始化

    类名称 对象数组名[] = new 类名称[] {对象,对象......};
    public class Test {
        public static void main(String[] args) {
            // 声明一个对象数组,里面有三个对象,使用静态初始化方式
            Person ps[] = { new Person("jerry", 18), new Person("tom", 20), 
                new Person("rose", 25)}; 
            System.out.println("---------------数组输出-------------------");
            for (int x = 0; x < ps.length; x++) {
                System.out.print(ps[x] + " "); // 循环输出
            }
        }
    }

    执行结果如下:

    ---------------数组输出-------------------
    Person [name=jerry, age=18] Person [name=tom, age=20] Person [name=rose, age=25] 

     

     

    展开全文
  • 本文主要介绍了java实现把对象数组通过excel方式导出的功能的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
  • 命令行: java -XX:+PrintCommandLineFlags -version 查看jvm默认参数 分别是 -XX:+UseCompressedOops 和 -XX:+UseCompressedClassPointers 这2个参数都是默认开启(+代表开启,-代表关闭) UseCompressedOops:普通...
  • Java中的对象数组

    万次阅读 2019-05-09 22:05:36
    Java对象数组 在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;而自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对其赋值、引用等操作,如果没有单独对每个对象元素创建,会...

    Java对象数组

    在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;而自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对其赋值、引用等操作,如果没有单独对每个对象元素创建,会导致空指针异常

    1.基本数据类型数组

    数组都要先声明、再创建后使用。基本数据类型数组的声明有以下几种格式(以int类型为例):①int[]array;②int[]array=new int;③int[]array={1,2,3};int[]array=newint[]{1,2,3};以上几种格式对数组内容操作,分为对数组的动态初始化和静态初始化两种形式。

    2.自定义对象数组

    自定义对象数组,它们由同一个类的多个具体实例有序组成。我们熟悉的主方法中的string args接收初始化参数时,参数就是一个典型的对象数组案例。由于其每个元素都是引用数据类型,数组在创建后,必须对每个对象分别进行实例化创建。
    以自定义学生类student为例

    public class Student
      {
          // 成员变量
          private String name;
          private int age;
      
          // 构造方法
          public Student()
          {
             super();
         }
     
         public Student(String name, int age) 
         {
             super();
             this.name = name;
             this.age = age;
         }
     
         // 成员方法
         // getXxx()/setXxx()
         public String getName() 
         {
             return name;
         }
     
         public void setName(String name) 
         {
             this.name = name;
         }
     
         public int getAge() 
         {
             return age;
         }
     
         public void setAge(int age) 
         {
             this.age = age;
         }
     
         @Override
         public String toString() 
         {
             return "Student [name=" + name + ", age=" + age + "]";
         }
     }
    
     public class Practice 
     {
         public static void main(String[] args)
       {
            // 创建学生数组(对象数组)。
            Student[] students = new Student[5];
             // for (int x = 0; x < students.length; x++) 
            // {
             //         System.out.println(students[x]);
             // }
           //     System.out.println("---------------------");
    
           // 创建5个学生对象,并赋值。
    	 	 Student s1 = new Student("小一", 27);
    	     Student s2 = new Student("小二", 30);
    	     Student s3 = new Student("小四", 30);
    	     Student s4 = new Student("小五", 12);
    	     Student s5 = new Student("小六", 35);
    
           // 将对象放到数组中。
           students[0] = s1;
           students[1] = s2;
           students[2] = s3;
           students[3] = s4;
           students[4] = s5;
          // 遍历
           for (int x = 0; x < students.length; x++) 
            {
             //System.out.println(students[x]);
                Student s = students[x];
               System.out.println(s.getName()+"---"+s.getAge());
            }
         }
     }
    

    注意:对象数组在经过创建后只建立了栈内存的地址空间,因此在没有对每个数组中的对象创建时输出全部为null,只有经过每个对象实例的独立地开辟堆内存空间,才能正确初始化对象数据。

    展开全文
  • java中对对象数组的排序

    千次阅读 2019-06-27 13:52:04
    1. 我们在编写程序的时候有时候会遇到需要对当前的对象数组按照对象中的每一个属性来进行排序,这个时候就需要使用到我们的Arrays.sort()方法了,在方法中需要传入的第一个参数是需要排序的对象数组,第二个参数是...

    1. 问题描述:

    我们在编写程序的时候有时候会遇到需要对当前的对象数组按照对象中的每一个属性来进行排序,这个时候就需要使用到我们的Arrays.sort( )方法了,在方法中需要传入的第一个参数是需要排序的对象数组,第二个参数是传入比较器的对象,在比较器对象中我们需要重写compare方法,在这个方法里面规定按照对象中的某个属性排序的规则,这样就可以对对象数组进行排序了

    需要注意的一个问题是对象数组每一个元素都是一个对象我们在创建对象数组的时候需要对其对象数组的每一个元素进行初始化,也就是对对象数组中的每一个数组元素都赋予一个创建的对象

    2. 下面是根据学生的分数由高到低进行排序:

    import java.util.Arrays;
    import java.util.Comparator;
    public class Main {
    	public static void main(String[] args) {
    		Student stus[] = new Student[3];
    		for(int i = 0; i < stus.length; ++i){
    			stus[i] = new Student();
    		}
    		stus[0].name = "xiaoming";
    		stus[0].age = 21;
    		stus[0].grade = 89;
    		stus[1].name = "xiaohong";
    		stus[1].age = 18;
    		stus[1].grade = 97;
    		stus[2].name = "xiaoliang";
    		stus[2].age = 24;
    		stus[2].grade = 78;
    		Comparator<Student> comp = new Comparator<Main.Student>() {
    			@Override
    			public int compare(Student o1, Student o2) {
    				if(o1.grade < o2.grade){
    					return 1;
    				}else if(o1.grade > o2.grade){
    					return -1;
    				}
    				return 0;
    			}
    		};
    		Arrays.sort(stus, comp);
    		for(int i = 0; i < stus.length; i++){
    			System.out.println(stus[i]);
    		}
    	}
    	
    	public static class Student{
    		String name;
    		int age;
    		int grade;
    		public String getName() {
    			return name;
    		}
    		public void setName(String name) {
    			this.name = name;
    		}
    		public int getAge() {
    			return age;
    		}
    		public void setAge(int age) {
    			this.age = age;
    		}
    		public int getGrade() {
    			return grade;
    		}
    		public void setGrade(int grade) {
    			this.grade = grade;
    		}
    		@Override
    		public String toString() {
    			return "Student [name=" + name + ", age=" + age + ", grade=" + grade + "]";
    		}
    	}
    }
    

     

    展开全文
  • 使用对象数组作为参数,只是将对象作为一个数组元素,其引用方法与基本数据类型的数组完全相同。但针对对象数组中的单个元素来讲,它又具有对象有属性和方法。 import java.util.Scanner; //学生类class Student{ ...
    使用对象数组作为参数,只是将对象作为一个数组元素,其引用方法与基本数据类型的数组完全相同。但针对对象数组中的单个元素来讲,它又具有对象有属性和方法。

    import java.util.Scanner;

    //学生类
    class Student{
    int age;
    }

    //平均年龄
    class Age{
    public int avg_Age(Student[] st){

    int avgage = 0; //平均年龄
    int all = 0; //学生总年龄
    int count = 0; //学生计数

    for(int i=0; i<st.length; i++){
    all += st[i].age;
    count++;
    }
    avgage = all/count;
    return avgage;
    }
    }
    public class Dm{
    public static void main(String[] args){

    Student[] stu = new Student[5]; //定义包含五个元素的学生对象数组(注意并没有为其分配空间)
    Age test = new Age();
    Scanner input = new Scanner(System.in);
    for(int i=0; i<5; i++){
    System.out.print("请输入第"+(i+1)+"位学生的年龄:");
    stu[i] = new Student(); //实例化(为其开辟内存空间)
    stu[i].age = input.nextInt();
    }
    //调用方法,传递对象数组
    int avgage = test.avg_Age(stu);//注意这里实参为学生对象数组
    System.out.println("这5名学生的平均年龄为:"+avgage+"岁");
    }
    }
    /*----------------------
    请输入第1位学生的年龄:8
    请输入第2位学生的年龄:12
    请输入第3位学生的年龄:19
    请输入第4位学生的年龄:24
    请输入第5位学生的年龄:69
    这5名学生的平均年龄为:26岁
    -----------------------*/

    展开全文
  • Java对象数组按照某属性排序

    千次阅读 2020-10-15 15:58:19
    要排序就要有比较的方法, 因为是自定义的类, 系统不知道怎么两个自定义类的比较,所以我们要自己在类内写两个类的比较的方法,也就是告诉按照那个属性或者那种方式来给对象数组排序,自定义比较算法也就是实现...
  • Java实现接收数组参数

    2020-05-21 18:30:08
    1.如果传递的参数类型是 String 参数内容是 11,12,13 然后转数组: 实现代码: String[] params = menuIds.split(","); 2.如果传递的参数类型是String 参数内容是 [11,12,13] 然后转数组: 实现代码: ...
  • 最近遇到了一道多条件排序题,类似于“something有A,B,C三个属性,先比较A,A条件相同时再比较B...Java是面向对象的语言,没有结构体的概念,我们应该定义类。比方说,用一个球队排名问题来举例子。现在对象是球队信...
  • 小编这里不多赘言,直接举个栗子。... //定义Product对象参数为名称和价格 data[0] = new Product("iphone", 10800); data[0] = new Product("vivo", 3589); data[0] = new Product("oppo", 4099); data[0]...
  • java对象数组的声明和初始化

    万次阅读 2015-06-21 22:12:29
    关键点: 在创建后,基本数据类型数组可以直接对数组元素赋值、...摘要:java是面向对象程序设计语言,对象数组作为javase中的基础部分的一个重要环节,是学生们在入门时经常容易混淆的知识点,结合作者个人多年教
  • JAVA数组参数

    千次阅读 2017-03-22 09:13:16
    可以将数组作为参数传递给方法或构造函数。传递给该方法的数组的类型必须是与形式参数类型兼容的赋值(即,形参和实参的数组类型要一样。 以下代码显示了如何将数组作为方法参数传递 - public class Main { public ...
  • java前后端传递对象数组

    千次阅读 2019-01-10 10:19:55
    前端保存对象数组作为参数: &amp;lt;1&amp;gt;定义数据对象: function dataObject(rowColPosition,content){ this.rowColPosition = rowColPosition; this.content = content; } 数据...
  • 之前有个需求,需要从前端向后台传递一个对象,该对象里不仅含有属性,还包含了一个数组 类似对象: Object:{属性1:'',属性2:'',...,children:[{属性3:''},{},...]} 这样的一个对象。后台使用一个一对多的实体类...
  • Java-对象数组空指针异常问题

    千次阅读 2017-06-16 11:49:56
    最近写了一个功能接口,根据 “前台需求” 采用了对象数组来存储数据,但是debug调试时总是在利用对象数组中的每一个元素插入数据时报错,报空指针异常,经过请教,弄懂了这个问题,记录下来。package entity; //...
  • java中传递数组参数

    2007-03-05 10:45:46
    可能有很多人对java的传递数组比较模糊,毕竟java中的数组和c的数组有一些不同。阅读它,也许对你有帮助。
  • 通过我们前边关于传递数组给方法,传递的是数组的引用。tong
  • Java数组传递及可变参数

    万次阅读 多人点赞 2018-09-02 11:39:20
    方法可以操作传递和返回基本数据类型,但是方法中也可用来传递和返回数组。如果要向方法中传递一个数组,则方法的接收参数处必须是...而数组也是一种对象,当把数组作为参数传递给方法时,传递的实际上就是数组对...
  • JAVA HTTP POST参数为一个对象数组

    千次阅读 2019-10-08 10:18:05
    https://blog.csdn.net/u013467442/article/details/51232872
  • 公共类中: circle[] a=new circle[5]; a[0].radius=2; a[1].radius=10; a[2].radius=8; a[3].radius=4; a[4].radius=12; 公共类之外 class circle{ int radius; } 这样赋值为何不对?
  • 应用实例:使用对象数组管理学生成绩
  • tag 是多个值,数组的形式,但是后台接收的时候会莫名其妙出现个{ } ,导致接收到的是这样的-- tag:{"[ ]"} 的东西,SpringBoot 这里不识别这个{ } ,所以需要解析一下参数,就有了用json字符串转java对象数组。...
  • java 对象数组(增删改查)

    千次阅读 2014-06-20 16:12:17
    package com.vince.lei; import java.util.Arrays; ...import org.omg.CORBA.PUBLIC_MEMBER;...// 对象数组:数组中的每个元素都是类的对象,赋值时先定义对象,然后将对象直接赋给数组 /** * @param args */
  • Java中的数组拷贝以及对象Bean拷贝

    千次阅读 2018-08-24 15:50:16
    数组拷贝方式 直接先贴出测试代码: Student : package com.tonglei.test; /** * 学生实体测试类 * * @author ffj * */ public class Student { private int age; private int height; ...
  • Java 数组的输入输出

    万次阅读 多人点赞 2017-03-02 12:01:01
    Java中要对控制台进行输入操作的话要调用Scanner类,定义一个扫描的对象,例://要导入java.util.Scanner; Scanner scanner = new Scanner(System.in);这样便打开了输入流,接下来定义数组:int[] n = new int[4];//...
  • Java对象复制和数组复制(拷贝)

    千次阅读 2017-10-05 02:52:23
    浅拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制 深拷贝:对象,对象内部的引用均复制   对象拷贝 一、对象浅拷贝 Object类里的clone方法是浅复制 1. 实现Cloneable接口,该接口没有任何...
  • 1 数组作为参数 我们可以将数组作为参数,传入到函数中,其实就像我们main函数中 public void main(String [] args){};就是用数组作为函数参数; 又如, [java] view plain copy public class ...
  • Java 面向对象 之 对象数组

    千次阅读 2018-05-31 10:23:25
    知识点: 对象数组 1. 对象数组的使用 2. 对象数组的foreach 增强for循环 3. 可变参数 题目:乘客一次只能带2个箱子免费上飞机 思路: 1. 抽象出类 乘客(Customer) , 箱子(Box) 2. 乘客和箱子的关系 1...
  • java url中传递数组参数的方法

    千次阅读 2020-03-13 22:57:12
    我不信,又调用了一次,没问题啊,数据正常返回,但是实际的生成的url和前端的就有点不同了: 总结一下,如果想用RequestParam接收Get请求中的list参数,可以这样拼接你的url http://localhost:8080/api/foos?id=1,2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 518,641
精华内容 207,456
关键字:

java对象数组做参数

java 订阅