AJPFX关于对集合中的元素删除操作和注意点
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ForeTest2 {
/**
* 对集合中的元素删除
*/
public static void main(String[] args) {
//demo1();
//demo2();
//demo();
}
private static void demo() {
List<String> li = new ArrayList<>();
li.add("a");
li.add("a");
li.add("d");
li.add("f");
li.add("a");
li.add("h");
//因为增强for循环底层是有迭代器实现的,在修改时会报出并发修改异常
for (String string : li) {
if("a".equals(string)) {
li.remove("a");
}
}
System.out.println(li);
}
private static void demo2() {
List<String> li = new ArrayList<>();
li.add("a");
li.add("a");
li.add("d");
li.add("f");
li.add("a");
li.add("h");
//在用普通for循环修改时,没删掉一个重复的元素,i的值就会改变,对于重复的元素在一块时,
//后面的重复元素就跳过那个i值了,将会被保留下来,将每次将i-1,就是往上一次,即可避免
for(int i = 0; i < li.size(); i ++) {
if("a".equals(li.get(i))) {
li.remove("a");
i--;
}
}
System.out.println(li);
}
private static void demo1() {
List<String> li = new ArrayList<>();
li.add("a");
li.add("a");
li.add("d");
li.add("f");
li.add("a");
li.add("h");
Iterator<String> it = li.iterator();
while(it.hasNext()) {
String str = it.next();
if("a".equals(str)) {
//在迭代过程中删掉元素,如果用集合的删除方法删除元素,会出现并发修改异常,需要用迭代器的方法
//li.remove("a");
it.remove();
}
}
System.out.println(li);
}
}
AJPFX关于对集合中的元素删除操作和注意点的更多相关文章
- 从LIst集合中安全的删除元素
package cn.rocker.list; import java.util.ArrayList; import java.util.Iterator; import java.util.List ...
- list,set等集合遍历时,不能remove集合中的元素。需要new一个Object或者list,set,里面add需要删除的元素,等集合遍历完了进行remove(Object)或者removeAll(list/set)操作
list,set等集合遍历时,不能remove集合中的元素.需要new一个Object或者list,set,里面add需要删除的元素,等集合遍历完了进行remove(Object)或者removeAl ...
- 删除 list 集合中的元素
删除 list 集合中的元素,当删除的元素有多个的时候,只能使用迭代器来删除. 当删除 list 集合中的元素只有一个的时候,有三种方法都可以实现. import java.util.ArrayLis ...
- Day_11【集合】扩展案例2_使用普通for循环获取集合中索引为3的元素并打印,统计集合中包含字符串"def"的数量,删除集合中的所有字符串",将集合中每个元素中的小写字母变成大写字母def",
分析以下需求,并用代码实现 1.定义ArrayList集合,存入多个字符串"abc" "def" "efg" "def" ...
- c#---部分;把数组或者结构体存入集合里,然后再从集合中取出之后,输出;foreach既可以用到提取数组重点额数据,也可以提取集合中的数据(前提是集合中的元素是相同数据类型)
1.输入班级人数,统计每个人的姓名,性别,年龄:集合与数组 //Console.Write("请输入班级人数:"); //int a = int.Parse(Console.Rea ...
- 巧妙利用ToArray()函数移除集合中的元素
当我们对集合foreach遍历时,不能直接移除遍历的集合的元素,解决的方法有很多种,见我之前的随笔: http://www.cnblogs.com/527289276qq/p/4331000.html ...
- java如何对List集合中的元素进行排序(请收藏)
在java开发中有时候我们需要对List集合中的元素按照一定的规则进行排序,比如说有个Person的集合,我们要根据Person的age属性进行排序输出,这就需要用到Java中提供的对集合进行操作的工 ...
- 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数. Google2009华南地 ...
- 2018.9.17 面试问题-----如何对List集合中的元素进行排序?
Collections对List集合中的数据进行排序 有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到 Java中提供的对集合进行操作的工具类Collections,其中的sort方法 先 ...
随机推荐
- Mysql的Merge存储引擎实现分表查询
对于数据量很大的一张表,i/o效率底下,分表势在必行! 使用程序分,对不同的查询,分配到不同的子表中,是个解决方案,但要改代码,对查询不透明. 好在mysql 有两个解决方案: Partition(分 ...
- SVN地址正确,能在网页打开,但是检出失败解决方法
TortoiseSVN缓存问题 右键点击TortoiseSVN -> Settings -> Saved Data, 点击个个“Clear”按钮,把本地缓存都清除了,点击“确定”: 再重新 ...
- String常量池
http://developer.51cto.com/art/201106/266454.htm
- Android源代码下载过程中无法下载repo的解决方法【转】
本文转载自:http://blog.csdn.net/shangyuan21/article/details/17618575 我们都知道下载Android源代码需要使用repo进行辅助下载,但是最进 ...
- 一步一步学Silverlight 2系列(12):数据与通信之WebClient
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- vmware9虚拟机通过NAT上网方式设置
vmware虚机上网的网络连接方式有bridge.NAT.Host-only等,如果对这个不了解的可以学习这篇文章http://wangchunhai.blog.51cto.com/225186/38 ...
- CodeForces-245H:Queries for Number of Palindromes(3-14:区间DP||回文串)
Times:5000ms: Memory limit:262144 kB 给定字符串S(|S|<=5000),下标由1开始.然后Q个问题(Q<=1e6),对于每个问题,给定L,R,回答区间 ...
- [Selenium] 如何使ChromeDriver 每次启动的端口不会随机变化
ChromeDriver 在不指定任何参数的情况下,启动监听端口会随机变化.如果需要保证其端口固定不变,可通过ChromeDriverService 打的目的 public class testCh ...
- 初学者遇到的PostgreSQL字符集问题的解决
当初学者在使用PostgreSQL数据库,输入中文时,会遇到“ERROR: invalid byte sequence for encoding "UTF8": 0xd6d0”的 ...
- SUI使用经验
基本布局结构: 本地js.css请使用正确的路径 <!DOCTYPE html> <html> <head> <meta charset="utf- ...