我得到错误java.lang.IndexOutOfBoundsException:index:0,size:0。
public Collection<AdDistribution> getAdDistribution(byte srch, byte cont) throws IndexOutOfBoundsException {
List<AdDistribution> mediums = new ArrayList<>();
List<AdDistribution> adDistribution = new ArrayList<>();
adDistribution.add(AdDistribution.SEARCH);
adDistribution.add(AdDistribution.CONTENT);
if (adDistribution.isEmpty()) {
return null;
}
if (srch == 0 && cont == 0) {
mediums = new ArrayList<>();
mediums.set(0, adDistribution.get(0));
}
if (srch == 1 || cont == 1) {
mediums = new ArrayList<>();
if (srch == 1) {
mediums.set(0, adDistribution.get(0));
} else if (cont == 1) {
mediums.set(0, adDistribution.get(1));
}
}
if (srch == 1 && cont == 1) {
mediums = new ArrayList<>();
mediums.set(0, adDistribution.get(0));
mediums.set(1, adDistribution.get(1));
}
return mediums;
}
您需要使用
mediums.add(adDistribution.get(0));
而不是mediums.set(0,addistribution.get(0));
等。
arraylist.set(int,Object)
要求有一个元素要替换:
用指定的元素替换此列表中指定位置的元素。
抛出:IndexOutOfBoundsException
-如果索引超出范围(index<0 index>=size())
在新列表中,size()==0
,因此set(0,something)
失败。
问题是您正在使用set方法更新索引0处的元素
set(index,value)方法需要一个元素出现在索引处
但在此之前,您还没有在medium arraylist中的那个位置添加任何元素。
因此您需要首先在索引0处添加一个元素,然后只有您可以使用set方法更新它
我正在尝试从数据库的某一行获取文本。为此,我做了这个函数 我这样称呼它: 我的桌子看起来像这样: 我得到这个错误: 为什么我会犯这个错误?我做错了什么? 提前感谢。
我试图从我的sqlite数据库中获取一行。当我运行这行代码时:- 我得到以下错误:- android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0 有人能帮我解决这个问题吗?感谢任何帮助或建议。谢谢你。
我正在尝试编写一个lz78代码作为一个学校项目,但我不断得到这个错误: 线程“main”java.lang.IndexOutOfBoundsException异常:索引:20,大小:20 代码如下:
我想使用来表示优先级队列。所以我想在ArrayList的特定位置添加项。但当我运行它时,系统告诉我 线程“main”java.lang.IndexOutOfBoundsException:索引:10,大小:0。
正如标题所说,我的问题是,当我编译时,我在线程“main”java.lang.IndexOutOfBoundsException:Index:1,Size:1中得到了Exception。这是问题产生的部分。 编辑。 我一直在网上寻找解决方案,所以我很确定问题是数组太小,但我仍然不确定如何解决它。我试图让代码的上半部分只从数组中取出数字并将它们放入一个新的数组中。 这是我调用的其他方法。 我已经坚持
我得到以下错误: android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。 根据该代码: 和这个类:错误: