Java里Arraylist中add方法报错的问题。
Randomran=newRandom();inta[]=newint[100];intkey=50;ArrayListlist=newArrayList();for(i...
Random ran=new Random();
int a[]=new int[100];
int key=50;
ArrayList list=new ArrayList();
for(int i=0;i<100;i++){
a[i]=ran.nextInt(100);
if(a[i]==key){
list.add(i);//在这里报错,小白求解答
}
}
public class 生成随机数搜索{
public static void main(String[] args) {
Random ran=new Random();
int a[]=new int[100];
int key=50;
ArrayList list=new ArrayList();
for(int i=0;i<100;i++){
a[i]=ran.nextInt(100);
if(a[i]==key){
list.add(i);}} // add(i)这里报错。
if(list.size()==0){
System.out.println("no");
}else{
for(int i=0;i<list.size();i++){
System.out.println(list.get[i]);
//这里也报错,get cannot be resolved or is not a field
}}}}
目的是搜索出key的值都在数组的哪个位置。 展开
int a[]=new int[100];
int key=50;
ArrayList list=new ArrayList();
for(int i=0;i<100;i++){
a[i]=ran.nextInt(100);
if(a[i]==key){
list.add(i);//在这里报错,小白求解答
}
}
public class 生成随机数搜索{
public static void main(String[] args) {
Random ran=new Random();
int a[]=new int[100];
int key=50;
ArrayList list=new ArrayList();
for(int i=0;i<100;i++){
a[i]=ran.nextInt(100);
if(a[i]==key){
list.add(i);}} // add(i)这里报错。
if(list.size()==0){
System.out.println("no");
}else{
for(int i=0;i<list.size();i++){
System.out.println(list.get[i]);
//这里也报错,get cannot be resolved or is not a field
}}}}
目的是搜索出key的值都在数组的哪个位置。 展开
4个回答
2016-10-28 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
直接看API就好,注意最后一句:IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index > size())
add
public void add(int index,
E element)将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。
指定者:
接口 List<E> 中的 add
覆盖:
类 AbstractList<E> 中的 add
参数:
index - 指定元素所插入位置的索引
element - 要插入的元素
抛出:
IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index > size())
补充------------------------
在指定位置上插入并不是顺序插入的意思呀
比如 1 2 3 4 5 6
现在有6个数,我可以在第三个位置插入一个数7,这样就变成:1 2 7 3 4 5 6
但是我不能在第100个上位置插入,因为目前没有那个位置,你不可能在那插入。
假设可以这样插入的话,在100这个位置插入后,就要将容量扩充至至少100,虽然中间都是null,但是内存也要分配。同样的你还得提防着是不是有人要在10万、100万这个位置插入数字呢?这样说的话,内存迟早要爆掉了……
所以只能在已经被分配了的位置上插入数据,而不能人工的去先插入再要求分配内存空间。
add
public void add(int index,
E element)将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。
指定者:
接口 List<E> 中的 add
覆盖:
类 AbstractList<E> 中的 add
参数:
index - 指定元素所插入位置的索引
element - 要插入的元素
抛出:
IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index > size())
补充------------------------
在指定位置上插入并不是顺序插入的意思呀
比如 1 2 3 4 5 6
现在有6个数,我可以在第三个位置插入一个数7,这样就变成:1 2 7 3 4 5 6
但是我不能在第100个上位置插入,因为目前没有那个位置,你不可能在那插入。
假设可以这样插入的话,在100这个位置插入后,就要将容量扩充至至少100,虽然中间都是null,但是内存也要分配。同样的你还得提防着是不是有人要在10万、100万这个位置插入数字呢?这样说的话,内存迟早要爆掉了……
所以只能在已经被分配了的位置上插入数据,而不能人工的去先插入再要求分配内存空间。
展开全部
我把你这段代码复制进去没问题 啊。
你是不是没有添加 List 的包?
package playgame;
import java.util.ArrayList; // 添加的包
import java.util.Random; //添加的包
public class Text123 {
public static void main(String[] args) {
Random ran=new Random();
int a[]=new int[100];
int key=50;
ArrayList list=new ArrayList();
for(int i=0;i<100;i++){
a[i]=ran.nextInt(100);
if(a[i]==key){
list.add(i);
}
}
if(list.size()==0){
System.out.println("no");
}
else{
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
}
你是不是没有添加 List 的包?
package playgame;
import java.util.ArrayList; // 添加的包
import java.util.Random; //添加的包
public class Text123 {
public static void main(String[] args) {
Random ran=new Random();
int a[]=new int[100];
int key=50;
ArrayList list=new ArrayList();
for(int i=0;i<100;i++){
a[i]=ran.nextInt(100);
if(a[i]==key){
list.add(i);
}
}
if(list.size()==0){
System.out.println("no");
}
else{
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么又有集合,还有数组。而且你ArrayList没有指定泛型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码看上去没问题,你可以把错误贴上来。
更多追问追答
追问
The method add(Object) in the type ArrayList is not applicable for the arguments ()
追答
后面的错误很明显,get(i)不是方括号,按道理前面不应该报错的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询