如何在ArrayList中保留某些值并删除其余值?

时间:2017-04-04 04:51:57

标签: java string arraylist

我的ArrayList被称为values,我可以使用下面的代码删除字符串。 ArrayList有字符串,负值和其他整数,我想删除但我不能使用remove方法,因为我不知道所有的值。这使我无法使用下面的代码。我希望将所有值保持在1到23之间,并删除其余值。

values.remove("O9N");

我尝试过使用这种方法,但它似乎并没有起作用。有人可以看看它,告诉我哪里出错了。

int col = 2; 
List values = new ArrayList(table.getRowCount());

for (int row = 0; row < table.getRowCount(); row++) {
values.add(table.getValueAt(row, col));
}

List<String> thingsIWantToKeep = new ArrayList<>();
if (values.contains(1)) {
String s1 ="1";
thingsIWantToKeep.add(s1);
}
if (values.contains(2)) {
String s2 ="2";
thingsIWantToKeep.add(s2);
}
System.out.println(thingsIWantToKeep);

所以如果列表值中有1,它应该将值1添加到thingsIWantToKeep,但它只是打印出空白,即使列表值有1个init。

2 个答案:

答案 0 :(得分:2)

List#retainAll&#34;仅保留此列表中包含在指定集合中的元素&#34;

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.mvl.dagger2testapp.MainActivity">

    <RadioButton
        android:id="@+id/radioButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/radioButton"
        android:layout_alignParentTop="false"
        android:layout_alignTop="@+id/radioButton"
        android:layout_toEndOf="@+id/radioButton"
        android:layout_toRightOf="@+id/radioButton"
        android:gravity="center"
        android:text="Label For RadioBUtton" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_toEndOf="@+id/radioButton"
        android:layout_toRightOf="@+id/radioButton"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name" />
</RelativeLayout>

答案 1 :(得分:0)

创建包含要删除的元素的ArrayList并调用removeAll方法:

list.removeAll(listToRemove);