如果下标1和下标2都为“NULL”,在你remove下标1的时候list的长度发生了变化(减了1),这个时候你的for循环的i已经成了2,这个时候取链表值会把原来的下标2为“NULL”漏掉,取到的是下一个的字符串
如果判断取到的是不是空,直接写valuesArrayList2.get(i)==null就行,如果"NULL"是你定义的字符串的话,就是比较你取到的值是不是"NULL"这个字符串时,用equals,equals比较内容,==比较是不是同一个对象,java判断为空的话最好写两个判断条件为:valuesArrayList2.get(i)!=null && valuesArrayList2.get(i)!="",不为NULL并且不为空字符串,这样最安全
很简单,因为它不是NULL,遍历打印一下看看,多个空格啥的。
有可能一些是null这的空 而一些是“null”字符串
打个比方。
在i=2的位置出现了null,然后remove了,那么原来在i=3的位置的元素就会上升到索引位为2的地方。
但是此时本轮循环结束,所以原来在3位置的就被跳过了。
你这么写,不止会错漏,还有很大可能最后要数组越界