我有一个ArrayList,我在其中添加 [string1 string2 string3 code] 等字符串。这段代码只是我给每个字符串的一个数字。但是这段代码是我必须用来删除或使用字符串的。
所以假设我有一个带有下一个字符串的arrayList:
String_1 = string1 string2 string3 1
String_2 = string4 string5 string6 2
String_3 = string7 string8 string9 3
现在,如果我要删除 String_2 ,我必须执行此操作:delete string "code"
,delete string 2
。这会从arrayList中删除 String_2 。
另外,如果我想从arraylist中提取 String_1 并将其设置为String,我必须使用代码来完成。
那么,在java中这样做的方法是什么?也许这对你们很多人来说很容易,但我对此很新,而且arrayList对我来说仍然有点困难。
答案 0 :(得分:3)
首先,这更像是地图的用例,其中您的代码是键,字符串是值。请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Map.html。
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "string1");
map.put(2, "string2");
map.get(1)
...
第二种方法是创建一个新对象,将代码保存为Integer和String,如
public class StringHolder {
int code;
String string;
// constructor
// setter and getter
}
然后使用for-each循环遍历数组列表,并将对象的代码与给定的代码进行比较。
或者,粗鲁,不推荐的方式:做一些疯狂的字符串操作来确定代码在字符串中的位置。实际上,不要这样做。
答案 1 :(得分:2)
如果你必须使用ArrayList
,我会建议这样的事情:
public static void main(String[] args) {
List<String> yourData = new ArrayList<String>();
yourData.add("string1 string2 string3 1");
yourData.add("string4 string5 string6 2");
yourData.add("string7 string8 string9 3");
Iterator<String> dataIterator = yourData.iterator();
while(dataIterator.hasNext()) {
String d = dataIterator.next();
if(d.endsWith("2")) {
dataIterator.remove();
}
}
}
这假设代码是一个字符串,并且始终是数据的最后一个字。
答案 2 :(得分:1)
试试这个:
List<String> stringsArray = new ArrayList<String>();
stringsArray.add("string1 string2 string3 1");
stringsArray.add("string4 string5 string6 2");
stringsArray.add("string7 string8 string9 3");
Iterator<String> iter = stringsArray.iterator();
while( iter.hasNext() ) {
String s = iter.next();
if( s.endsWith("1") ) {
iter.remove();
}
}