当前位置: 代码迷 >> Java相关 >> NB部分代码不执行
  详细解决方案

NB部分代码不执行

热度:115   发布时间:2007-10-05 17:48:08.0
NB部分代码不执行
开发环境jdk1.5 NB版本:5.5.1
在运行下面方法的时候红字代码总是直接跳过,可是用eclipse3.2运行下列代码却可以运行
public ArrayList filter(ArrayList list) {
int count = 0;
int length = list.size();
for (int i = 0; i < length; i++) {
for (int j = i; j < length; j++) {
if (list.get(i).equals(list.get(j))) {
count++;
} else {
break;
}
}
if (count >1) {
for (int k=i; k<count; k++) {
list.remove(i);
length--;
}
}
count = 0;
}
return list;
}

用过NB的能不能给解释一下啊!
搜索更多相关的解决方案: 代码  

----------------解决方案--------------------------------------------------------
lz的目的是想把ArrayList中连续一样的元素合并吧?
代码本身有问题:
程序代码:

public static ArrayList<?> filter(ArrayList<?> list) {
int count = 0;
int length = list.size();
for (int i = 0; i < length; i++) {
for (int j = i; j < length; j++) {
if (list.get(i).equals(list.get(j))) {
count++;
} else {
break;
}
}
if (count >1) {
for (int k=i; k<count+i-1; k++) {
list.remove(i);
length--;
}
}
count = 0;
}
return list;
}

----------------解决方案--------------------------------------------------------
如果你不使用泛型,就把 &lt;?&gt;去掉
----------------解决方案--------------------------------------------------------

另外,代码不必要写的那么复杂:

程序代码:

public List filter(List list) {
Object obj =null;
for(ListIterator itr =list.listIterator();itr.hasNext();){
Object cur =itr.next();
if(cur.equals(obj)) itr.remove();
else obj =cur;
}
return list;
}


----------------解决方案--------------------------------------------------------
谢谢了 受教 不过代码运行到那地方还是跳过去了,没有其他的办法了吗?

[此贴子已经被作者于2007-10-5 21:38:00编辑过]



----------------解决方案--------------------------------------------------------
呵呵,我说呢,怎么 会和IDE有关呢
----------------解决方案--------------------------------------------------------
冰封帮我看一下啊!还是不行啊!
----------------解决方案--------------------------------------------------------
以下是引用lgdcky在2007-10-5 21:22:50的发言:
谢谢了 受教 不过代码运行到那地方还是跳过去了,没有其他的办法了吗?

跳过出?
你是怎么确定这段代码没有运行?
----------------解决方案--------------------------------------------------------
在DEBUG模式下运行,当有重复的要移除的时候,就会到
if (count >1) {
for (int k=i; k<count+i-1; k++) {
list.remove(i);
length--;
}这段代码,可是在判断了count>1之后就直接跳到了count=0;移除这段代码根本就没有运行!这段代码只有在eclipse中才能正常跑!

----------------解决方案--------------------------------------------------------

自己改了以下,重新编译了一下就好了!晕死,eclipse用多了,老不编译的!问题解决了!


----------------解决方案--------------------------------------------------------
  相关解决方案