ArrayList<ArrayList<String>> 这种结构的数据,java如何删除其中的某一列元素??

Randomrandom=newRandom();intr=random.nextInt(k);for(ArrayList<String>als:alalstr2){al... Random random = new Random();
int r = random.nextInt(k);
for(ArrayList<String> als : alalstr2){
als.remove(r);
}
alalstr2.remove(r);
我这样写的,然后就报了下标越界的错
展开
 我来答
雪飞潇潇
2015-11-08 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:886万
展开全部

删除,你得确保你的随机数,是否超过了ArrayList的长度

import java.util.ArrayList;
import java.util.Random;

public class RemoDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("天涯");
list.add("明月");
Random random = new Random();
int r = random.nextInt(2);
System.out.println("随机下标是"+r);// 输出随机数字
// list.remove(r);//如果这个随机数字。大于了list的长度。那么就会下标越界
// 应该先判断是否越界,然后再删除
if (r < list.size()) {
String ss = list.remove(r);//按照下标进行删除
System.out.println("删除了"+ss);
}

boolean b = list.remove("ABC");//按照元素进行删除
System.out.println(b ? "ABC删除成功" : "ABC删除失败");

}
}
随机下标是0
删除了天涯
ABC删除失败
yugi111
2015-11-08 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
int r = (int)(Math.random() * alalstr2.size());
for(ArrayList<String> als : alalstr2){
als.remove(r);
}
alalstr2.remove(r);

// 确保两个list的长度一致,不然照样越界,否则思路改之即可
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式