Java 有没有一种方法可以动态创建对象?
我有一个家庭作业问题来计算不同航空公司的延误航班。我正在阅读一个CSV文件,并为“航空公司”创建了一个包含航班总数和延误航班的类。由于有许多载体(10个左右),如何在从CSV(或2d阵列)读取载体对象时创建载体对象 而不是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数组中,非面向对象代码如下所示
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")