Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种方法可以动态创建对象?_Java_Arrays_Object_2d - Fatal编程技术网

Java 有没有一种方法可以动态创建对象?

Java 有没有一种方法可以动态创建对象?,java,arrays,object,2d,Java,Arrays,Object,2d,我有一个家庭作业问题来计算不同航空公司的延误航班。我正在阅读一个CSV文件,并为“航空公司”创建了一个包含航班总数和延误航班的类。由于有许多载体(10个左右),如何在从CSV(或2d阵列)读取载体对象时创建载体对象 而不是 carrier UA = new carrier("Us Airways", 100, 50); carrier Delta = new carrier("Delta", 100, 50); 并对所有对象进行硬编码 现在CSV数据位于2D数组中,非面向对象代码如下所示

我有一个家庭作业问题来计算不同航空公司的延误航班。我正在阅读一个CSV文件,并为“航空公司”创建了一个包含航班总数和延误航班的类。由于有许多载体(10个左右),如何在从CSV(或2d阵列)读取载体对象时创建载体对象

而不是

carrier UA = new carrier("Us Airways", 100, 50);
carrier Delta = new carrier("Delta", 100, 50);
并对所有对象进行硬编码

现在CSV数据位于2D数组中,非面向对象代码如下所示

    public static void main (String [] args) throws Exception{

    CSVReader reader = new CSVReader(new FileReader("delayed.csv"));
    String [] nextLine;

    String[][] flightData = new String[221][3];
    int i=0;    
        while ((nextLine = reader.readNext()) != null) {

            for(int r = 0; r<2; r++){
            flightData[i][0] = nextLine[1];
            flightData[i][1] = nextLine[6];
            flightData[i][2] = nextLine[7];
            }
        i++;
        //System.out.println("Carrier: " + nextLine[1] + "\t\tTotal: " + nextLine[6] + "\t\tDelayed: " + nextLine[7] + "");
        }
        while(flightData != null){
        carrier 
        }
} 
publicstaticvoidmain(字符串[]args)引发异常{
CSVReader reader=新的CSVReader(新的文件阅读器(“delayed.csv”);
字符串[]下一行;
字符串[][]flightData=新字符串[221][3];
int i=0;
而((nextLine=reader.readNext())!=null){
对于(int r=0;r
如果有名称相同但值不同的重复载波,则HashMap中只保留最后一个

要从列表中获取承运商,请使用:

listCarrier.get("carrier_name")

这将返回名为“carrier\u name”的承运人从地图上看,如果有的话。

+1虽然我会验证承运人在文件中只出现一次,但概念是有效的,在他的问题中,这不是一个先决条件,但我想他可以使用hasmap。感谢+1。我同意,但你可能只想澄清一下……海报很棒,没有细节;)载体确实在文件中出现过不止一次。我只是出于某种原因没有提到它。这是一段很流畅的代码。但既然MadProgrammer和你提出了它,你会如何使用hashmap?我想我只是想专注于动态创建对象的基础知识,这让我很沮丧
Map<String, Carrier> listCarrier = new HashMap<String, Carrier>();   
Carrier carrier = new Carrier(nextLine[1], Integer.valueOf(nextLine[6]), Integer.valueOf(nextLine[7]));
listCarrier .put(nextLine[1],carrier );
//Here the key is the carrier name, and the value is the carrier object
listCarrier.get("carrier_name")