我们应该如何在Java中使用向量,就像我们在C+中使用向量一样+;?

我们应该如何在Java中使用向量,就像我们在C+中使用向量一样+;?,java,class,vector,Java,Class,Vector,我想制作一个班级成绩册,然后为每个学生创建一个对象,并将他们的名字、课程名称和成绩保存在一个向量中,最后,将它们全部打印出来。这是我的密码: public static void main(String [] args) { Vector<GradeBook> gVec = new Vector<GradeBook>() ; Scanner sc = new Scanner (System.in) ; String

我想制作一个班级成绩册,然后为每个学生创建一个对象,并将他们的名字、课程名称和成绩保存在一个向量中,最后,将它们全部打印出来。这是我的密码:

public static void main(String [] args)
    {
        Vector<GradeBook> gVec = new Vector<GradeBook>() ;
        Scanner sc = new Scanner (System.in) ;

        String sName = sc.nextLine();
        String cName = sc.next();
        int grade = sc.nextInt() ;
        while(!sName.equals("end"))
        {
            GradeBook st = new GradeBook() ;
            st.setCouseInfo(sName, cName, grade) ;
            gVec.add(st) ;
            sName = sc.nextLine();
            cName = sc.next();
            grade = sc.nextInt() ;
        }
    }
publicstaticvoidmain(字符串[]args)
{
向量gVec=新向量();
扫描仪sc=新的扫描仪(System.in);
字符串sName=sc.nextLine();
字符串cName=sc.next();
int grade=sc.nextInt();
而(!sName.equals(“end”))
{
成绩册st=新成绩册();
圣塞特库塞恩福(斯奈姆、cName、等级);
gVec.add(st);
sName=sc.nextLine();
cName=sc.next();
等级=sc.nextInt();
}
}
prgoram获取名称,检查是否为“end”,然后获取课程名称和成绩,将它们设置为成绩册字段,即studentName、courseName和courseGrade,然后将它们添加到成绩册向量中

<> P>但是在程序结束时,我打印问题的结果是有问题的,它不能像我在C++中那样做,比如:

for ( int i=0;i<gVec.size();i++)
{
System.out.println(gVec[i].studentName);
System.out.println(gVec[i].courseName);
System.out.println(gVec[i].courseGrade);
}

for(int i=0;i所需的方法是
Vector.get(int i)
。有关详细信息,请参阅


但是,我不会使用Vector。我更喜欢,或者。为什么?默认情况下,在每个操作上同步
向量
,并且同步模式(每个方法)没有太大用处,您需要支付(少量)性能罚款。有关详细信息,请参阅。

您无法通过
[]访问向量元素
,您应该使用
gVec.get(i)
,或者使用
foreach
循环

    for (GradeBook bookItem : gVec){
System.out.println(bookItem.studentName);
System.out.println(bookItem.courseName);
System.out.println(bookItem.courseGrade);
}

另外,如果你在单线程中查看
ArrayList
LinkedList

你的文档指向1.4.2,它非常古老,甚至不使用泛型。如果谷歌放弃1.4是java类的最佳选择,那该多好啊……当然,我想这是我们的错。