Java 拆分arraylist并重新合并它们
我创建了一个名为OutlierInfo的类,如下所示Java 拆分arraylist并重新合并它们,java,oop,arraylist,user-defined-types,Java,Oop,Arraylist,User Defined Types,我创建了一个名为OutlierInfo的类,如下所示 public class OutlierInfo { public String month; public int year; public String id; public int serialId; public void setSerialId(int serialid) { serialId=serialid; } public vo
public class OutlierInfo
{
public String month;
public int year;
public String id;
public int serialId;
public void setSerialId(int serialid)
{
serialId=serialid;
}
public void setMonth(String monthh)
{
month=monthh;
}
public void setYear(int yearr)
{
year=yearr;
}
public void setId(String idd)
{
id=idd;
}
}
我有一个Outlierinfo类型的arraylist。我已经将Outlierinfo的一些对象添加到arraylist中。现在我要做的是根据对象的SerialId对对象进行分组,生成每个组的arraylist,然后合并这些组的所有arraylist
这是我写的代码,但它只是抛出错误,我不知道为什么。我需要一些帮助,以找出为什么下面的代码给出错误?
公共类ArraylistSort
{
ArrayList结果=新建ArrayList();
静态ArrayList groupResult=新建ArrayList();
字符串[]月={“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”,
“九月”、“十月”、“十一月”、“十二月”
};
int计数器=0;
整数计数=0;
公共ArraylistSort(){
对于(int i=0;i请仔细阅读:
线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:6,大小:6
自1970年以来,java和大多数现代编程语言中的数组索引:)从0开始。如果数组长度为6个元素,则其索引必须在0…5范围内
我希望现在您有足够的信息来调试代码并找到bug
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6, Size: 6
表示您有一个大小为6的arraylist,并且您正在尝试访问第6个索引处的元素。这是错误的
请记住,arraylist索引是零索引的。因此,如果arraylist的大小为6,那么要访问第6个元素,应该执行以下操作
al.get(5).
我猜,你的计数是6,因此你的循环应该是
for(int j=0;j<count-1;j++)
{
OutlierInfo info2=new OutlierInfo();
info2=result.get(j);
/// continue your code
用于(int j=0;j你得到了一个索引越界异常,这几乎总是程序员的错误。然而,我接受了你发布的代码,它工作得很好,没有异常。我意识到你的错误在ArrayListSort中表示错误。java:98所以第98行你发布的类只有59行!所以你运行的是你自己的类的错误版本你正在运行你发布的那个。这就是问题所在
我未经修改运行您发布的代码的结果
结果大小1
结果大小2
结果大小3
结果大小4
结果大小5
结果尺寸6
结果大小7
结果大小8
第1部分
r码7
第1部分
r码6
第1部分
r码5
第1部分
r码4
第1部分
r码3
第1部分
r码2
第1部分
r码1
第1部分
r size 0嘿,我运行了你的代码并检查了它。
这是输出
result size1
result size2
result size3
result size4
result size5
result size6
result size7
result size8
partiainfosize1
r size 7
partiainfosize1
r size 6
partiainfosize1
r size 5
partiainfosize1
r size 4
partiainfosize1
r size 3
partiainfosize1
r size 2
partiainfosize1
r size 1
partiainfosize1
r size 0
结果大小1
结果大小2
结果大小3
结果大小4
结果大小5
结果尺寸6
结果大小7
结果大小8
第1部分
r码7
第1部分
r码6
第1部分
r码5
第1部分
r码4
第1部分
r码3
第1部分
r码2
第1部分
r码1
第1部分
r尺寸0
如果您使用eclipse,请签入其他IDE(在Netbeans中尝试)然后检查是否仍然有错误我知道。我基本上是在动态地将对象添加到此arraylist,因此arraylist的大小正在增加,因为我在此处向此arraylist添加了8个对象,所以它的大小必须为8,所以当程序尝试访问第6个对象时为什么会出现异常?酷,我不知道这样的情况索引从1970年开始:)嘿,为了清晰起见,我在发帖时删除了一些评论:)我还删除了一些基本上是打印内容的行。我没有看到任何逻辑错误,但我只是不断得到^array out bounds error^感谢您运行代码并发布结果。我不知道为什么我会一直收到错误谢谢:)但我这里的问题很难(至少我认为是这样)或者可能是我误解了我不知道。
al.get(5).
for(int j=0;j<count-1;j++)
{
OutlierInfo info2=new OutlierInfo();
info2=result.get(j);
/// continue your code
result size1
result size2
result size3
result size4
result size5
result size6
result size7
result size8
partiainfosize1
r size 7
partiainfosize1
r size 6
partiainfosize1
r size 5
partiainfosize1
r size 4
partiainfosize1
r size 3
partiainfosize1
r size 2
partiainfosize1
r size 1
partiainfosize1
r size 0