黑马程序员技术交流社区

标题: 【石家庄校区】JavaEE基础 -bug小结 [打印本页]

作者: A_haha    时间: 2019-1-8 17:14
标题: 【石家庄校区】JavaEE基础 -bug小结
本帖最后由 小石姐姐 于 2019-1-10 11:17 编辑

Java编程基础(第1天)

异常一
问题标题:格式错误
问题分类:ArrayList添加元素
[Java] 纯文本查看 复制代码
ArrayList<Long>list = new ArrayList<>();
list.add(123L);
list.add(1234L);
list.add(12345L);
list.add(654123L);
list.add(456789123L);
list.add(1112222333444);
问题分析:
数据默认int型,一旦超出int范围报错。将数据给Long型不超int范围不报错,
超出之后需要在数据后加L。
问题解决方案:
list.add(1112222333444L);
异常二
问题标题:运行错误
问题分类:For循环选最大最小值
问题补充:我定义的maxi是为了获取集合中最大数的索引值,mini同上。
[Java] 纯文本查看 复制代码
ArrayList<Integer>list=new ArrayList();
Int max=0,maxi=0;
for (int i = 0; i < list.size();i++) {
    if (list.get(i)>max){
        maxi=i;
    }else if (list.get(i)<min){
        min=i;
    }
    sum+=list.get(i);
}
问题分析: 意图太直接,只为获得最大最小值的索引值,忘记了将最大值最小值赋值给max和min,以此类推的会的最大最小值。导致最大值最小一直停留在
变量初始化数值。
问题解决方法:
修改代码
[Java] 纯文本查看 复制代码
for (int i = 0; i < list.size();i++) {
    if (list.get(i)>max){
maxi=i;
        max=list.get(i);
    }else if (list.get(i)<min){
min=i;
        min=list.get(i);
    }
    sum+=list.get(i);
}
异常三
问题标题:运行错误
问题分类:ArrayList删除元素
[Java] 纯文本查看 复制代码
ArrayList< String>list=new ArrayList();
list.add("音乐");//0
list.add("旅游");//1
list.add("看书");//2
list.add("跑步");//3
list.add("音乐");//4
list.add("音乐");//5
list.add("旅游");//6
list.add("游泳");//7
list.add("游泳");//7
for (int i = 0; i < list.size();i++) {
    for (int j = i+1; j < list.size(); j++) {
        if (list.get(i)==list.get(j)){
            list.remove(j);
            
        }
    }
}
System.out.println(list);

问题分析:
[
输出结果不正确,
忘记了删除元素之后将索引值返回。
问题解决方法:
修改代码
[Java] 纯文本查看 复制代码
for (int i = 0; i < list.size();i++) {
    for (int j = i+1; j < list.size(); j++) {
        if (list.get(i)==list.get(j)){
            list.remove(j);
            j--;
        }
    }
}
System.out.println(list);










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2