Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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_Vector - Fatal编程技术网

Java 使用两个字符串将项添加到向量

Java 使用两个字符串将项添加到向量,java,vector,Java,Vector,我已经创建了多个字符串 public class Program { private String code; private String name; public Program(String theCode, String theName) { code = theCode; name = theName; } } 现在,我想在Program类型的向量中添加一些项 public class ProgramList

我已经创建了多个字符串

public class Program
{
    private String code;
    private String name;

    public Program(String theCode, String theName)
    {
        code = theCode;
        name = theName;
    }
}
现在,我想在Program类型的向量中添加一些项

public class ProgramList
{
    private Vector<Program> list;

    public ProgramList()
    {
    list = new Vector<Program>();
    }

如何将字符串c和n添加到向量列表中?如何使用list.add()

如果您的问题只是添加语句,您可以写以下内容:

list.add(new Program(c, n));

这样,您可以创建一个包含字符串的
程序
对象。该对象被添加到列表中。

通过创建
程序的新对象来添加它们。用以下代码替换上一个代码部分

代码:

    BufferedReader infile = new BufferedReader
                       (new FileReader("programs.txt"));
String line;
int i = 0;
while ((line = infile.readLine()) != null)
{
    String c, n;
    StringTokenizer linesplit = new StringTokenizer(line, "  ");
    c = linesplit.nextElement().toString();
    n = linesplit.nextElement().toString();
    list.add(new Program(c,n));
    i++;
}  
}

建议:使用
ArrayList
而不是Vector。它比
Vector
更容易处理,并由许多其他功能提供。阅读本文了解更多关于2014年为什么使用
Vector
阵列列表的信息?坦率地说,我很惊讶JDK仍然没有将其标记为不推荐的。。。在多线程应用程序中使用
列表
insteadVector可能很有用,不是吗?列表未同步。@Joffrey您忘记了
CopyOnWriteArrayList
;同步是一回事,而并发友好则是另一回事;)向量在默认情况下是同步的,然后速度会慢很多。如果您需要线程安全列表,还有一种方法可以获得它。@Joffrey如果您确实需要一个同步的集合类,那么使用
Collections.synchronizedList(…)
列表
包装为同步。不要使用遗留的
Vector
集合类。它是在构造函数中声明的吗?这很有效,谢谢。对,我错了,我没看到是同一个班级:)
    BufferedReader infile = new BufferedReader
                       (new FileReader("programs.txt"));
String line;
int i = 0;
while ((line = infile.readLine()) != null)
{
    String c, n;
    StringTokenizer linesplit = new StringTokenizer(line, "  ");
    c = linesplit.nextElement().toString();
    n = linesplit.nextElement().toString();
    list.add(new Program(c,n));
    i++;
}  
}