使用String.valueOf(s.charAt(i))从ArrayList中删除

时间:2017-10-16 02:37:07

标签: java list arraylist

我知道之前已经问过这个问题的很多变化,但它对我不起作用。让我说我有一个名为alldata<- data.frame(scoreddata, subscaledata) alldatascores<- c(subscaledata$scores, psyo372scored$nbis_tot, psyo372scored$nsss_tot, psyo372scored$npumps_a) alldatalabels<-gl(10, 130, labels = c("nsss_dis", "nsss_bor", "nsss_thr", "nsss_exp", "nbis_nonplanning", "nbis_attentional", "nbis_motor", "nbis_tot", "nsss_tot", "npumps_a")) alldata<- data.frame(alldatascores, alldatalabels) alldata ind.t.test<-t.test(alldata$npumps_a ~ alldata$nsss_dis, paired = FALSE) ind.t.test 的ArrayList和一个字符串list,我想要根据条件删除在s中添加或删除字符,当我向列表中添加字符时,它可以正常工作,但是当我删除字符时它不起作用。例如,当我使用s时,它可以正常工作,但当我使用list.remove(String.valueOf('c'))时,它不会。  这是一个例子

list.remove(String.valueOf(s.charAt(i))

1 个答案:

答案 0 :(得分:-1)

你的代码无效,因为在java中有一个字符串&#34; X&#34;与角色不一样X&#39; ...让我解释一下:

如果你看一下ArrayList的remove方法,你会发现:

public boolean remove(Object o) {
    if (o == null) {
        for (int index = 0; index < size; index++)
            if (elementData[index] == null) {
                fastRemove(index);
                return true;
            }
    } else {
        for (int index = 0; index < size; index++)
            if (o.equals(elementData[index])) {
                fastRemove(index);
                return true;
            }
    }
    return false;
}

但重要的部分在这里:

 if (o.equals(elementData[index])) {
            fastRemove(index);
            return true;
 }

现在,因为String.valueOf()返回一个String对象,所以你告诉你的代码删除一个字符列表的字符串...该指令总是会失败,因为o.equals(elementData[index])在这种情况下返回false。 ..