打印参数内部的数组

Posted

技术标签:

【中文标题】打印参数内部的数组【英文标题】:printing array that is inside parameter 【发布时间】:2022-01-23 21:13:38 【问题描述】:

有谁知道如何打印出 lecArray[0] 内的数组,即 1A / 01 1A / 02?

公共类 LecturerUser

public static void main(String[] args) 
    Lecturers[] lecArray = new Lecturers[4];

    lecArray[0] = new FullTimeLecturer(
            "John", 1, new String[]"1A / 01", "1A / 02",
            new int[]20, 22, 3500);

    lecArray[1] = new FullTimeLecturer(
            "Jack", 2, new String[]"1B / 01", "1B / 02",
            new int[]25, 22, 4000);

    lecArray[2] = new PartTimeLecturer("Joe", 11, 60, 60);

    lecArray[3] = new PartTimeLecturer("Janny", 12, 60, 45);

    for (int i = 0; i < lecArray.length; i++) 
        System.out.println(lecArray[i].getName() +"'s monthly pay is " + lecArray[i].calcMonthlyPay());
        
    

【问题讨论】:

你能分享Lecturer的定义吗?它有吸气剂吗? 使用Arrays.toString() 公开课讲师私有字符串名称;私人 int 员工 ID;公共讲师(字符串 inName,int instaffID) name = inName;工作人员 ID = 工作人员 ID; public String getName() 返回名称; public void setName(String inName) name = inName; /* public int getstaffID() return staffID; */ public double calcMonthlyPay() return 0.0; 【参考方案1】:

您实际上需要另一个 for 循环

    for (int i = 0; i < lecArray.length; i++) 
        System.out.println(lecArray[i].getName() +"'s monthly pay is " + lecArray[i].calcMonthlyPay());
        for (int j = 0; j < lecArray[i].innerArray.length; i++)
            System.out.println(lecArray[i].innerArray[j]);
        
    

【讨论】:

【参考方案2】:

Java 是一种面向对象的语言;你想要的不是一般可能的。任何对象都是一个黑盒子:你想用它做什么完全取决于类定义,它定义了你可以用那个类的实例做什么(那些就是对象)。

幸运的是,如果它在任何方面都很重要,这些类定义往往会定义方法来为您提供所需的信息。例如,这可能有效:

System.out.println(Arrays.toString(lecArray[0].getResponsibleFor());

在这里我假设“1A / 02”的东西是他们负责的组。

注意:

数组不适合这种事情,它们是一种低级结构,只有在使用需要它们的 API、与操作系统或内部 java 库交互或编写核心实用程序(例如,ArrayList 在其source 使用数组)。数组是可变的,不能变成不可变的,这是一个很大的问题,它的toStringequalshashCode的实现大多是没用的,不能改变。这就是为什么你应该用List&lt;String&gt; 代替这些。甚至更好,List&lt;Course&gt;,或 Group,或任何应该代表的东西。

【讨论】:

嗨,我还有其他方法可以在 lecArray[0] 中键入 1A/02 和 1A/03,而无需使用数组,就像我键入“John”、1 等一样,因为我想在一个参数中键入两个信息,那么我该怎么办?【参考方案3】:

您应该为 Lecturers 类创建 toString() 函数。在函数中,你打印你想要显示的内容,在主函数中,你只调用 lecArray[i].toString()

【讨论】:

以上是关于打印参数内部的数组的主要内容,如果未能解决你的问题,请参考以下文章

将所有 For 循环数组值打印到内部 HTML

漂亮的打印json,但将内部数组保留在一行python

Vue Js 在我用 Axios get 调用的函数内部,将传入的数据打印到数组中

声明数组变量/// 计算所有元素的总和/打印所有元素总和/输出/foreach循环/数组作为函数的参数/调用printArray方法打印

用随机数 80-100 填充数组并使用以数组作为参数的方法打印两种不同的方式

打印出数组数组中元素的所有组合[重复]