如何将对象添加到矢量中?

时间:2014-02-27 18:30:03

标签: java object vector add

问题是 - 根据航班的详细信息输入,创建对象vector的{​​{1}}。请注意,故障单应以与输入相同的顺序显示在Ticket中。 详细信息以vector提供。数组中的每个项目对应一个故障单,并具有以下空格分隔的详细信息:String[]

我试过跟随,因为我是新手,我第一次这样做,我无法找到自己的方式。

Origin, destination, departure, arrival, amount

3 个答案:

答案 0 :(得分:0)

在不使用FlightTickets对象的情况下,您无法在静态函数(包括main)中处理FlightTickets的Member变量。

您应该执行以下操作:

f.v.add(ticket);

这不是标准做法,许多程序员通过抽象内部使用的数据结构来使用其他技术。您可以在FlightTickets中创建一个函数,如下所示:

public void addTickets(FlightTicket ticket)
{
    this.v.add(ticket);
}

此外,您设计的课程令人困惑,因为FlightTicket有一个向量,您可以在其中存储FlightTickets的集合。可能你可能想要以更好的方式设计它。

答案 1 :(得分:0)

一个简单的解决方法是在主方法中移动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的评论中提到的,您最好使用ArrayListList。代码不起作用的真正原因是@kakarot回答,你不能从静态方法访问非静态字段。

答案 2 :(得分:0)

试试这个:

public static void main(String[] args) {           
    FlightTickets ticket = new FlightTickets("Caledonia", "South <bKorea", "10:00", "5:00", "15000");
    ticket.v.add(ticket);
}

请记住,您无法从静态方法访问非静态变量。 顺便说一句,因为Vector类是泛型类型,所以最好像这样定义'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);
    }
}
相关问题