Java 如何将对象添加到向量中?
问题是- 将航班的详细信息作为输入,创建对象Java 如何将对象添加到向量中?,java,object,vector,add,Java,Object,Vector,Add,问题是- 将航班的详细信息作为输入,创建对象票证的向量。请注意,票据应以与输入相同的顺序出现在向量中。 详细信息已作为字符串[]提供。数组中的每个项目对应一张票证,并具有以下空格分隔的详细信息:起点、目的地、出发地、到达地、金额 我试着跟随,因为我是一个新手,这是我第一次这样做,我无法找到我的方式 import java.util.Vector; public class FlightTickets { String origin; String
票证的向量。请注意,票据应以与输入相同的顺序出现在向量中。
详细信息已作为字符串[]
提供。数组中的每个项目对应一张票证,并具有以下空格分隔的详细信息:起点、目的地、出发地、到达地、金额
我试着跟随,因为我是一个新手,这是我第一次这样做,我无法找到我的方式
import java.util.Vector;
public class FlightTickets {
String origin;
String destination;
String departure;
String arrival;
String amount;
Vector v = new Vector();
public FlightTickets(String origin, String destination, String departure, String arrival, String amount) {
this.origin = origin;
this.destination = destination;
this.departure = departure;
this.arrival = arrival;
this.amount = amount;
}
public static void main(String[] args) {
FlightTickets ticket = new FlightTickets("Caledonia", "South Korea", "10:00", "5:00", "15000");
v.add(ticket);
}
}
如果不使用FlightTickets对象,则无法在静态函数(包括main)内访问FlightTickets的成员变量
您应该执行以下操作:
f.v.add(ticket);
这不是一种标准做法,许多程序员通过抽象内部使用的数据结构来使用其他技术。您可以在FlightTickets中创建函数,如下所示:
public void addTickets(FlightTicket ticket)
{
this.v.add(ticket);
}
另外,您设计的类令人困惑,因为FlightTicket有一个向量,您正在其中存储FlightTicket的集合。也许你会想用一种更好的方式来设计它。一个简单的解决方法是移动Vector v=new Vector()代码>在主方法内部。这导致:
import java.util.Vector;
public class FlightTickets {
String origin;
String destination;
String departure;
String arrival;
String amount;
public FlightTickets(String origin, String destination, String departure, String arrival, String amount){
this.origin = origin;
this.destination = destination;
this.departure = departure;
this.arrival = arrival;
this.amount = amount;
}
public static void main(String[] args){
FlightTickets ticket = new FlightTickets("Caledonia", "South Korea", "10:00", "5:00", "15000");
Vector v = new Vector();
v.add(ticket);
}
}
正如@obicere在评论中提到的,您最好使用或。代码不起作用的真正原因是@kakarot回答说,您不能从静态方法访问非静态字段。尝试以下方法:
public static void main(String[] args) {
FlightTickets ticket = new FlightTickets("Caledonia", "South <bKorea", "10:00", "5:00", "15000");
ticket.v.add(ticket);
}
publicstaticvoidmain(字符串[]args){
机票=新机票(“喀里多尼亚”,"Southv
是一个实例变量,但您正试图从静态方法使用它。您应该阅读这篇文章,这将解释这是一个问题的原因。另外,为您的标识符使用Java命名约定。Origin
应该是Origin
l。例如,感谢您的帮助,我尝试了所有解决方案,但没有人是giv给我一个输出。我想代码中可能还有其他错误。我不知道为什么,但它给出了从迭代器中删除参数类型的错误。1)错误是什么?2)哪个参数和在哪里?(你是指来源吗?)在这个语句迭代器中,iterator it=ticket.v.iterator();这是说删除Testclass。你是否将我的代码复制并粘贴到名为Testclass.java的文件中了?谢谢,我尝试了这个方法,但没有输出。我想可能还有其他错误。当然没有输出;没有打印任何内容!如果你想这样做,请使用System.out.println(v)
(取决于要打印的内容)
Vector<TestClass> v = new Vector<TestClass>();
import java.util.Iterator;
import java.util.Vector;
public class TestClass {
String Origin;
String destination;
String departure;
String arrival;
String amount;
Vector<TestClass> v = new Vector<TestClass>();
public TestClass(String Origin, String destination, String departure, String arrival, String amount) {
this.Origin = Origin;
this.destination = destination;
this.departure = departure;
this.arrival = arrival;
this.amount = amount;
}
public static void main(String[] args){
TestClass ticket = new TestClass("Caledonia", "South Korea", "10:00", "5:00", "15000");
ticket.v.add(ticket);
Iterator<TestClass> it = ticket.v.iterator();
while(it.hasNext())
System.out.println(it.next().Origin);
}
}