list集合
list集合在执行 遍历删除时 ,不要使用 增强for和普通for 最好使用迭代器
private static void listDemo() {
List<String> list = new ArrayList<>();
list.add("aa");
list.add("aa");
list.add("cc");
list.add("dd");
//增强for偶尔删除 当没有重复数据时会删除,有重复数据时会报并发类修改异常
/* for(String str:list){
if(str.equals("aa")){
list.remove(str);
}
}*/
//普通for删除不彻底 当有重复数据时指挥删除一条数据,没有重复数据时则删除彻底
/*for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
if(s.equals("aa")){
list.remove(s);
}
}*/
//迭代器完美删除
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String str = iterator.next();
if(str.equals("aa")){
iterator.remove();
}
}
set集合
private static void setDemo() {
Set<String> set = new HashSet<>();
set.add("aa");
set.add("aa");
set.add("bb");
set.add("cc");
//set集合的遍历
Iterator<String> iterator = set.iterator();// iterator 迭代器
while(iterator.hasNext()){ //如果为true代表还有别的值
String value = iterator.next();
System.out.println(value);
}
//增强for遍历
for(String str:set){
System.out.println(str);
}
}
map集合
private static void mapDemo() {
Map<String,String> map = new HashMap<>();
map.put("aa","123");
map.put("bb","456");
map.put("cc","789");
map.put("aa","000");
//转化为set遍历
/*Set<String> strings = map.keySet();
for(String str:strings){
//System.out.println(str);
System.out.println("key="+str+"--->"+"value="+map.get(str));
}*/
//使用entryset
Set<Map.Entry<String, String>> entries = map.entrySet();
for(Map.Entry<String, String> m:entries){
System.out.println(m.getKey()+" "+m.getValue());
}
}
本文详细介绍了在Java中如何正确地操作list、set和map集合,包括遍历和删除元素的最佳实践,以及避免并发修改异常的策略。
852

被折叠的 条评论
为什么被折叠?



