Java 如何从ArrayList获取数组<&燃气轮机; ArrayList队列=新建ArrayList(); if(有效(x、y、颜色填充、颜色边界、图形)){ int[]添加=新的int[2]; 加[0]=x; 加上[1]=y; queue.add(添加); } 而(!queue.isEmpty()){ int[]get=queue.get(queue.size()); graphics.putPixel(获取[0],获取[1],彩色填充); queue.remove(queue.size());…}
嘿,我在从ArrayList queue=new ArrayList()获取数组时遇到问题;。有吗Java 如何从ArrayList获取数组<&燃气轮机; ArrayList队列=新建ArrayList(); if(有效(x、y、颜色填充、颜色边界、图形)){ int[]添加=新的int[2]; 加[0]=x; 加上[1]=y; queue.add(添加); } 而(!queue.isEmpty()){ int[]get=queue.get(queue.size()); graphics.putPixel(获取[0],获取[1],彩色填充); queue.remove(queue.size());…},java,arrays,arraylist,Java,Arrays,Arraylist,嘿,我在从ArrayList queue=new ArrayList()获取数组时遇到问题;。有吗 建议我在哪里犯了错误?你的问题不太清楚,但我认为问题出在下面一行 ArrayList<int[]> queue = new ArrayList<>(); if (isValid(x, y, colorFill, colorBoundary, graphics)){ int[] add = new int[2]; ad
建议我在哪里犯了错误?你的问题不太清楚,但我认为问题出在下面一行
ArrayList<int[]> queue = new ArrayList<>();
if (isValid(x, y, colorFill, colorBoundary, graphics)){
int[] add = new int[2];
add[0]=x;
add[1]=y;
queue.add(add);
}
while (!queue.isEmpty()){
int[] get = queue.get(queue.size());
graphics.putPixel(get[0],get[1],colorFill);
queue.remove(queue.size());...}
这是行不通的,因为在Java中,索引总是以“0”开头。因此,最后一个元素的索引将是queue.size()-1
。因此,上面的代码将返回索引越界异常
按如下方式更正代码
int[] get = queue.get(queue.size());
你的问题不太清楚,但我认为问题出在下面这一行
ArrayList<int[]> queue = new ArrayList<>();
if (isValid(x, y, colorFill, colorBoundary, graphics)){
int[] add = new int[2];
add[0]=x;
add[1]=y;
queue.add(add);
}
while (!queue.isEmpty()){
int[] get = queue.get(queue.size());
graphics.putPixel(get[0],get[1],colorFill);
queue.remove(queue.size());...}
这是行不通的,因为在Java中,索引总是以“0”开头。因此,最后一个元素的索引将是queue.size()-1
。因此,上面的代码将返回索引越界异常
按如下方式更正代码
int[] get = queue.get(queue.size());
从
返回此列表中指定位置的元素。抛出:
IndexOutOfBoundsException-如果索引超出范围(索引<0 | |索引>=size()) 在你的问题中,当你写在下面一行时:
int[] get = queue.get(queue.size()-1);
然后它违反了index>=size()
条件,因为您正在传递queue.size()
传递索引值b/w0
和queue.size()-1
以获取元素
例如:
queue.get(queue.size());
从
返回此列表中指定位置的元素。抛出:
IndexOutOfBoundsException-如果索引超出范围(索引<0 | |索引>=size()) 在你的问题中,当你写在下面一行时:
int[] get = queue.get(queue.size()-1);
然后它违反了index>=size()
条件,因为您正在传递queue.size()
传递索引值b/w0
和queue.size()-1
以获取元素
例如:
queue.get(queue.size());
如果要访问/删除最后一个元素,您可能应该将
queue.size()
更改为queue.size()-1
。我记得ArrayList
不能是优先级类型,请尝试使用Integer[]
(而不是int[])@AsfK anint[]
不是原语,它继承自对象
,因此,它是泛型集合的合法基类型。当您说“我有问题”时,请同时添加问题所在。你收到错误信息了吗?如果是这样,请将其包含在您的问题中。你有没有预料不到的行为?然后,请回答问题,并添加您预期的行为和发生的情况。这是否回答了您的问题?如果要访问/删除最后一个元素,您可能应该将queue.size()
更改为queue.size()-1
。我记得ArrayList
不能是优先级类型,请尝试使用Integer[]
(而不是int[])@AsfK anint[]
不是原语,它继承自对象
,因此,它是泛型集合的合法基类型。当您说“我有问题”时,请同时添加问题所在。你收到错误信息了吗?如果是这样,请将其包含在您的问题中。你有没有预料不到的行为?然后,请回答问题,并添加您预期的行为和发生的情况。这是否回答了您的问题?