Java无法识别ArrayList中的元素?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java无法识别ArrayList中的元素?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2388字,纯文字阅读大概需要4分钟。
内容图文
![Java无法识别ArrayList中的元素?](/upload/InfoBanner/zyjiaocheng/759/9fcc23f7f992456ca5581fe584c8f029.jpg)
我有一个程序,我在那里制作一个arraylist来保存一些cab对象.我一直得到一个错误,我从消息中得到的是java不能识别arraylist中有对象.这是我得到的错误.
Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 20, Size: 20
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at edu.Tridenttech.MartiC.app.CabOrginazer.main(CabOrginazer.java:48)
这是我试图开始工作的代码
public class CabOrginazer {
private static List<CabProperties> cabs = new ArrayList<CabProperties>();
private static int count = 0;
private static boolean found = false;
public void cabOrginazer()
{
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CabRecordReaper reaper = new CabRecordReaper("C:/CabRecords/September.txt");
CabProperties cabNum;
for(int i = 0; i < 20; i++)
{
cabNum = new CabProperties();
cabs.add(cabNum);
}
while(reaper.hasMoreRecords())
{
CabRecord file = reaper.getNextRecord();
for(int j = 0; j < cabs.size(); j++)
{
if(cabs.get(j).getCabID() == file.getCabId())
{
found = true;
cabs.get(j).setTypeAndValue(file.getType(), file.getValue(), file.getPerGallonCost());
cabs.get(j).setDate(file.getDateString());
break;
}
}
if(found == false)
{
cabs.get(count).setCabId(file.getCabId());
count++;
}
/*for(CabProperties taxi : cabs)
{
if(taxi.getCabID() == file.getCabId())
{
found = true;
taxi.setTypeAndValue(file.getType(), file.getValue(), file.getPerGallonCost());
taxi.setDate(file.getDateString());
break;
}
}*/
}
for(CabProperties taxi : cabs)
{
System.out.print("cab ID: " + taxi.getCabID());
System.out.print("\tGross earning: " + taxi.getGrossEarn());
System.out.print("\tTotal Gas Cost: " + taxi.getGasCost());
System.out.print("\tTotal Service Cost: " + taxi.getServiceCost());
System.out.println();
}
}
}
第48行是if语句的内部,它表示cabs.get(count).setCabId(file.getCabId());
我对Java的了解很少. Java应该知道cab中有元素,我应该能够设置cab的id.是什么导致Java无法识别arraylist是否已填充?
解决方法:
列表中没有填充项目计数的元素.查看异常:列表中有20个元素,因此有效索引为0到19(含).你要求记录20(即第21记录).那不存在.
这听起来像你的块应该是这样的:
if (!found)
{
CabProperties properties = new CabProperties();
properties.setCabId(file.getCabId());
// Probably set more stuff
cabs.add(properties);
}
您很可能完全摆脱count变量 – 以及具有虚拟属性的列表的初始填充.填充这样的列表是非常奇怪的 – 这通常是你用一个固定大小的数组做的事情.使用List(例如ArrayList)的主要好处之一是它的动态大小.
内容总结
以上是互联网集市为您收集整理的Java无法识别ArrayList中的元素?全部内容,希望文章能够帮你解决Java无法识别ArrayList中的元素?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。