java - 如何使用 for 循环将一些数据插入到类的索引数组中以及如何查看它们?
问题描述
如何使用循环将数据插入数组?假设我有一个带有空构造函数 Teacher() 数据的教师类,其名称、id 等。如何使用主类的 for 循环在该教师类上插入名称?
我尝试使用循环输入数据,但在查看时数据显示我的数组索引超出范围。
Teacher [] a = new Teacher[2];
for (int i = 0; i <= a.length; i++) {
System.out.println("Number "+i+" Teacher name: ");
String name = in.nextLine();
a[i] = new Teacher(name, "ECE", "141", "SIA", 2345678);
}
System.out.println(a[a.length - 1].toString());
for (int i = 0; i < a.length; i++) {
System.out.println(a[i].getName());
}
更新尝试了更好的答案,但出现了同样的问题。伙计们,我的问题是在a[i] = new Teacher(name, "ECE", "141", "SIA", 2345678)行向数组中插入数据的时间 ;这里发生异常。就像无法插入数据一样。
Number 0 Teacher name:
siat
Number 1 Teacher name:
manik
Number 2 Teacher name:
munna
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at oop.SchoolMain.main(SchoolMain.java:31)
解决方案
你声明你的数组有2
元素:
Teacher [] a = new Teacher[2];
它们被放置在索引0
和1
.
在以下循环中,您从0
to迭代,2
因此您尝试访问 index 处的元素2
。如上所述,没有这样的元素。
for (int i = 0; i <= 2; i++) {
}
同样的情况也发生在这一行。再次索引2
。
System.out.println(a[2].toString());
我假设你想访问最后一个元素,所以你可以这样做:
System.out.println(a[a.length - 1].toString());
您的第一个循环应该看起来像第二个循环,您将在其中迭代,a.length
这样您就不会访问索引大于数组中最后一个索引的元素。
这就是代码的样子:
Teacher [] a = new Teacher[2];
for (int i = 0; i < a.length; i++) {
System.out.println(i+">Name: ");
String name = in.nextLine();
a[i] = new Teacher(name, "123", "ECE", "sia", 234567);
}
System.out.println(a[a.length -1].toString());
for (int i = 0; i < a.length; i++) {
System.out.println(a[i].getName());
}
推荐阅读
- solr - 应用架构文件谜题后缺少 2 个字段
- java - 应用程序窗口错误“插件“org.eclipse.wb.core.ui”无法实例化类”
- javascript - 我如何在 LokiJS DB 中创建索引?
- android-studio - Android Studio - 视频奖励有效,但没有更多回调 - 可能出现故障?
- microsoft-graph-api - Graph API - 我如何确定链接的联系人?
- docusignapi - 退回的文件缺少签名
- firebase - 以编程方式添加 Videoview
- wordpress - Wordpress - 自定义分类法不适用于永久链接 - 404
- linux - 从 bash shell 脚本中的整个字符串中提取路径
- woocommerce - 将 Biller billing_first_name 添加到 woocommerce 中的页脚消息