android 从字符串列表中删除字符串项

agyaoht7  于 2023-06-28  发布在  Android
关注(0)|答案(5)|浏览(166)

如何从包含字符串的List中删除特定字符串....
如:

ArrayList<String> myStrings = new ArrayList<>();
myStrings.add("Alpha");
myStrings.add("Beta");
myStrings.add("Gama");
.                           //The order can be random 
.
.
.

现在,我只有列表myStrings,我不知道哪个String在哪个索引处。但是我知道,我想在删除“Alpha”后显示所有字符串。
总而言之,在删除一个我知道数组包含但不知道其索引/位置的字符串后,我如何从字符串数组中获取字符串。

yyhrrdl8

yyhrrdl81#

使用删除:

myStrings.remove("Alpha");

请注意,这只会从列表中删除第一次出现的“Alpha”。

t2a7ltrp

t2a7ltrp2#

boolean remove(Object o)

ArrayList类的上述方法将从列表中删除第一次出现的Object o
您可以:

myStrings.remove("Alpha");

如果ArrayList包含指定的元素,则返回true

s2j5cfk0

s2j5cfk03#

您是否也希望删除字符串列表中的重复项?
如果是这样,你可以将String的list转换为String的set。然后,您可以有效地从set中删除字符串,将其转换回map

// converting to set will remove duplicates
final Set<String> uniqueStrSet = new HashSet<String>(listOfString);

// remove string from set
uniqueStrSet.remove(strToRemove);

// convert set back to list
list = new ArrayList<String>(uniqueStrSet);
8oomwypt

8oomwypt4#

如果这不起作用

myStrings.remove("Alpha");

试试这个,对我很好用

int pos = myStrings.indexOf("Alpha");//Getting string position
myStrings.remove(pos);
8cdiaqws

8cdiaqws5#

如果你使用不可变列表(现在这种情况很常见),你将不能使用remove方法;您将得到UnsupportedOperationException
使用Lamda代替:

List<String> filteredList = myStrings.stream()
        .filter(toRemove -> !"Alpha".equals(toRemove))
        .toList();

就是这样它应该适应您的特定用例。
注意:"Alpha".equals(...)是Sonarqube在使用litterals时推荐的。请不要因此责备我。

相关问题