【问题标题】:In java, how can I create an array inside an array of different data types [duplicate]在java中,如何在不同数据类型的数组中创建一个数组[重复]
【发布时间】:2020-01-16 12:16:32
【问题描述】:
String [] cabin_names={"Hetty","Poppy","Blus Skies","Bay View",
                               "Happy Days","Summer Joy","Walkers' Rest",
                               "Bertie","Green Forest Lodge","Coppice Lodge"}; 

int[] cabin_capacity={4,4,4,6,6,6,8,8,10,10};

double[] cabin_peak={400.00,400.00,500.00,650.00,695.00,800.00,950.00,
                             1050.00,1200.00,1500.00};

double[] cabin_offpeak={250.00,250.00,350.00,500.00,550.00,600.00,750.00,
                                850.00,950.00,1150.00};

我尝试将所有这些数组放在一个数组中,但它们都是不同的数据类型。

float[][] array_of_all_cabin_deets={cabin_names,cabin_capacity,cabin_peak,cabin_offpeak};

【问题讨论】:

    标签: java arrays multidimensional-array types


    【解决方案1】:

    可以通过创建Object类型的外层数组来实现

            Object[] genericArray = {cabin_names, cabin_capacity, cabin_peak, cabin_offpeak};
    

    【讨论】:

    • 这有什么用?给定外部 genericArray ,您将如何访问各个数组中的字段?
    • 我们必须键入 cast 才能访问数组的每个字段。
    【解决方案2】:

    您不能通过指定数组的类型来做到这一点,一种解决方案是创建一个名为Cabin的类

    public class Cabin {
        private String name;
        private int capacity;
        private double peak;
        private double offBeak;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getCapacity() {
            return capacity;
        }
    
        public void setCapacity(int capacity) {
            this.capacity = capacity;
        }
    
        public double getPeak() {
            return peak;
        }
    
        public void setPeak(double peak) {
            this.peak = peak;
        }
    
        public double getOffBeak() {
            return offBeak;
        }
    
        public void setOffBeak(double offBeak) {
            this.offBeak = offBeak;
        }
    }
    

    然后创建Cabin的数组

        Cabin[] cabins = new Cabin[3];
        Cabin cabin = new Cabin();
        cabin.setName("Hetty");
        cabin.setPeak(4);
        cabin.setOffBeak(250.00);
        cabins[0] = cabin;
    

    【讨论】:

      猜你喜欢
      • 2021-11-04
      • 1970-01-01
      • 2020-09-05
      • 2021-10-09
      • 2022-01-02
      相关资源
      最近更新 更多