首页 > 其他分享 >利用数组储存表格数据

利用数组储存表格数据

时间:2024-04-11 12:32:13浏览次数:23  
标签:储存 String 表格 Object 数据类型 数组 new public

原理以及普通数组储存表格信息

        在介绍数组的时候说过,数组能够用来储存任何同类型的数据,这里的意思就表明只要是同一个类型的数组据就可以储存到一个数组中。那么在表格中同一行的数据是否可以储存到同一个数组中呢?答案自然是可以,但是与之对应的疑惑便也产生了,比如一个学生类的表格中存储的信息是学生的姓名、年龄、籍贯、省份证号等等等等的信息,很明显他们的类型是完全不同的,那么怎么能将他们储存进一个数组中呢?

        在解决这个问题之前,先提出一个问题。在定义数组的时候我们采用的语法结构是

                数据类型 [ ] 数组名称 = new 数据类型 [ 数组长度] ;

那么这里的数据类型有多少种呢?估计会有人毫不犹豫地回答8种。因为java中有8中基本数据类型,因此很多人会这样回答。但是其实在java中还有字符串类型和引用类型,我们依然能创建与这两种数据类型对应的数组。因此确切来说这里的数据类型有10种。

        既然解决了数据类型的问题,那么这里再提出一个问题,那就是,这里的数据类型有多少种表达方式呢?如果回答10种,那么恭喜你又错了。因为有引用类型的存在,所以理论上来说这里的数据类型的表达可以有无数种方式,因为类属于引用类型,所以每一个类都可以写成数组的数据类型。比如如果定义了一个Person类,那么就可以定义数组 Person[ ] person = new Person[数组长度];而这里有一个很明显的问题,那几是类可以有无数个,因此数据类型的表达也就有了无数个。

        解决了以上问题,对于数组种能否储存表格中的数据这个问题也就迎刃而解了。首先之前说过,数组也是对象,其次new关键字能够用来创建对象。那么当我们用一个类的名称来定义数组时,是不是变成了这样的格式:

        类名 [ ] 数组名 = new 类名[ 数组长度];

可以发现,这个格式的右边与类中对象的创建非常相似,甚至在一定条件下可以说它就是创建了一个对象也无可厚非。而这个数组中储存的正好就是类的对象。比如我们以下面这个代码为例,当创建数据类型为Emp的数组emps时,因为数据类型为类名,所以创建数组中的元素时必须调用类的构造方法,创建这个类的对象,这时数组中的元素就是类Emp的对象。这样如果把每一个对象的信息都放入表格之中,那么这个数组中的信息不就是这个表格的信息吗。

package cn.luoyusanshu.array;
import java.util.Arrays;
/**
 * 使用javabean和一维数组储存表格信息
 */
public class Test07 {
    public static void main(String[] args){
    Emp emp0 = new Emp(1001,"高小一",18,"程序员","2019-9-21");
    Emp emp1 = new Emp(1003,"高小二",19,"程序员","2019-8-21");
    Emp emp2 = new Emp(1005,"高小三",20,"程序员","2019-9-25");

    //Object[] emps = {emp0,emp1,emp2};
        Emp[] emps = new Emp[3];
        emps[0] = emp0;
        emps[1] = emp1;
        emps[2] = emp2;
        for (int i = 0; i < emps.length; i++) {
            System.out.println(emps[i].getId()+"\t"+emps[i].getAge()+"\t"+emps[i].getName());
        }
        for (int i = 0; i < emps.length; i++) {
            System.out.println(emps[i]);
        }

    }
}
class Emp{
    private int id;
    private String name;
    private int age;
    private String job;
    private String hiredate;

    public Emp(){

    }

    public Emp(int id, String name, int age, String job, String hiredate) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.job = job;
        this.hiredate = hiredate;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return getId()+"\t"+getName()+"\t"+getAge()+"\t"+getJob()+"\t"+getHiredate();
    }

    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 String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getHiredate() {
        return hiredate;
    }

    public void setHiredate(String hiredate) {
        this.hiredate = hiredate;
    }
}

Object数组储存表格信息 

        由此我们已经知道了普通数组可以用来储存表格的信息,但是这却也带来了一个麻烦,那就是每一次要储存一个表格的信息都要重新定义一个类,这样显得过于麻烦且没有必要。为了解决这样一个问题Object数组便出现了,我们都知道Object类是所有类的父类,所以如果使用Object类作为数组的数据类型就意味着它可以直接对表格数据进行存储。比如在下面的这个代码中,a1[0]数组便能够储存这些看似为不同类型的数据,当然这只是表面上的,其实这些数据都是同一个类型——对象。这里要注意的是java中的基本数据类型并不属于对象,但在使用中当需要这些数据类型变为对象的时候大多数情况下系统会自动对其进行装箱操作,从而将其转化为对象。

package cn.luoyusanshu.array;
import java.util.Arrays;
public class Test06 {
    public static void main(String[] args) {
        Object[][] a1 = new Object[3][];
        a1[0]=new Object[]{1001,"高小一",18,"讲师","2002-90-17"};
        a1[1]=new Object[]{1001,"高小二",18,"讲师","2002-90-19"};
        a1[1]=new Object[]{1001,"高小三",18,"讲师","2002-90-27"};
        System.out.println(a1[0]);
        System.out.println(Arrays.toString(a1[0]));
        Object[] emp0 = {1001,"高小一",18,"讲师","2002-90-17"};
        Object[] emp1 = {1001,"高小二",18,"讲师","2002-90-16"};
        Object[] emp2 = {1001,"高小三",18,"讲师","2002-90-28"};
        Object[][] emp = new Object[3][];
        emp[0] = emp0;
        emp[1] = emp1;
        emp[2] = emp2;
        System.out.println(Arrays.toString(emp[0]));
        System.out.println(Arrays.toString(emp[1]));
        System.out.println(Arrays.toString(emp[2]));
        System.out.println("____________________________");
        for (int i = 0; i < emp.length; i++) {
            System.out.println(Arrays.toString(emp[i]));
        }
        System.out.println("_______________________________");

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

标签:储存,String,表格,Object,数据类型,数组,new,public
From: https://blog.csdn.net/qq_59750520/article/details/137614317

相关文章

  • 嵌入式之指针、数组、函数篇(三)
    三、指针、数组、函数1.什么是指针?指针其实也是个变量,只不过这个变量里面存储的是内存地址。2.什么是指针的类型?举个例子:int*a;指针类型为int*char*c;指针类型为char*3.什么是指针所指向类型举个例子:int*a;指针指向类型为intchar*c;指针指向类型为char注......
  • 数组
    数组数组的定义数组声明创建packagecom.xqstudy.array;publicclassArrayDemo01{//变量的类型变了的名字=变量的值;//数组的类型publicstaticvoidmain(String[]args){int[]nums;//1.声明一个数组nums=newint[10];//2.......
  • 最优算法100例之38-构建乘积数组
    专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用......
  • 最大连续子数组和(最大子段和)
    1.题目要求:最大连续子数组和(最大子段和)问题背景:给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为:Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n例如,当(a[1],a[2]......
  • 4.数组
    一、为什么需要数组由于变量只能存放一个值,当要一回存放多个值时会很麻烦,所以C++的创造者增加了数组这个概念,能够同时存放多个值。二、一维数组1.一维数组的定义//数组定义//格式:数据类型数组名[数组长度]={元1,2,元素3};inta1[5];floata2[15];doublea3[100];cha......
  • C++ 获取数组大小、多维数组操作详解
    获取数组的大小要获取数组的大小,可以使用sizeof()运算符:示例intmyNumbers[5]={10,20,30,40,50};cout<<sizeof(myNumbers);结果:20为什么结果显示为20而不是5,当数组包含5个元素时?这是因为sizeof()运算符返回类型的大小(以字节为单位)。要找出数组有多少......
  • 最大连续子数组和(最大子段和)
    作业信息 沈阳航空航天大学计算机学院2024软件工程作业课程目标 熟悉一个“高质量”软件的开发过程作业目标 单元测试练习请在作业最后部分填写如下表格记录本次工作详细信息项目 记录结果日期 2024.4.10开始时间 2024.4.9结束时间 2024.4.10结束时间 2024.4.10编码行数 ......
  • JAVA数组
    1.1数组的概念所谓数组(array),就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,以便统一管理他们,然后用编号区分他们,这个名字称为数组名,编号称为下标或索引(index)。组成数组的各个变量称为数组的元素(element)。数组中元素的个数称为数......
  • 小美的数组构造(美团2024届秋招笔试第二场编程真题)
    题面核心思想dp[i][j]表示前i个数字和为j时的组合数那么第i个数的取法有1<=k<=j需要遍历第i个数取k前i-1个数取j-k时dp[i][j]=(dp[i][j]+dp[i-1][j-k])%MOD;注意是和为j第i个数取k所以是dp[i][j]。同时需要判断第i个数不能和a数组取相同的......
  • 数组1
    (一),一维数组(1)一维数组的创建和使用数组时一组相同元素的集合type_t   arr_name   [const_n];//type_t 是指数组的元素类型//const_n是一个常量表达式,用来指定数组的大小(2)一维数组的大小1,strlen和sizeof没有什么关联2,strlen是求字符串长度的-只能针对字符......