java - 如何测试 vector 中找到的元素?

标签 java vector indexing

在向 vector 添加一个或多个变量后,我遇到了问题

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1

at java.base/java.util.Vector.get(Vector.java:747)

at Universitaet.studAngeleldet(Universitaet.java:163) == methode studAngeleldet

at Main.main(Main.java:169) == case 6

public class Student extends Person { 
    Vector<LVA> studentLVA = new Vector();
public class LVA { 
    Vector<Student> lvaStudent = new Vector();
public class Universitaet {
            Vector<Dozent> dozent = new Vector();
            private int anzhal_dozenten =0;
            Vector<LVA> lvas  = new Vector();
public boolean studAngeleldet(String a , String b){
        boolean found = false;
        for (int i = 0 ; i < studenten.size() ; i++){
            if(studenten.get(i).studentLVA.isEmpty()){
               break; 
            }
            for(int j = 0 ; j < lvas.size() ; j++){
                if(lvas.get(j).lvaStudent.isEmpty()){
                    break;
                }
                if(a.equals(lvas.get(j).lvaStudent.get(j).getMN()) && b.equals(studenten.get(i).studentLVA.get(i).getCode())){
                    found = true;
                }
              }
            }
    return found;
    }
case 6:
                    System.out.println("Bitte Geben Sie Die Matrikelnummer:");
                    String mn1 = in.nextLine();
                    if(uni.isHere(mn1)){
                        System.out.println("Der Studnet exisitert nicht!");
                        break;
                    }
                    System.out.println("Bitte geben sie Das code des LVA:");
                    String code1 = in.nextLine();
                    if(uni.isExist(code1)){
                        System.out.println("Der LVA not found!");
                        break;
                    }
                    
                    if(uni.studAngeleldet(mn1, code1)){
                        System.out.println("Der student is schone zum LVA anmedet");
                        break;
                    }
                    System.out.println("Der student wurde anmeldet"); 
                    uni.sudentzuLvaAnmelden(mn1 , code1);
                    break;

最佳答案

在下面的行中,您使用 lvas vector 的索引 j。

if(a.equals(lvas.get(j).**lvaStudent.get(j)**.getMN())

由于 lvaStudent 本身就是一个 vector ,因此您必须使用自己的循环对其进行迭代。

这同样适用于studentLVA。

关于java - 如何测试 vector 中找到的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61851061/

相关文章:

c++ - 从中 move 数据的 vector 的容量

indexing - couchbase 索引如何对索引的无效文档和新的有效文档使用react?

python - 切片多索引时间(第一级)TypeError : '<' not supported between instances of 'int' and 'slice'

java - 从 2d 像素阵列创建图片并将其显示在 jpanel 上

java - Android:在声明新计时器后调用 CountDownTimer 的 onFinish()

java - Spring - 用新的属性文件值替换 bean 属性值

sql - 如何学习 SQL Server 索引调优?

java - 如何向变量悬停弹出窗口添加按钮

R 内存管理/无法分配大小为 n Mb 的向量

java 3D 旋转不起作用