- 浏览: 2624307 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (880)
- 每日总结 (26)
- java (37)
- lucene 2.4源码学习 (11)
- 庖丁分词的源码分析 (5)
- cindy源码阅读 (10)
- jetty (3)
- java基础 (49)
- hadoop (37)
- python (7)
- 那些蛋疼的事 (15)
- 测试 (5)
- spring (3)
- redis (4)
- git (4)
- 我的开源项目 (2)
- linux (15)
- mysql (8)
- bootsharp (1)
- idea (1)
- Disruptor源码分析 (11)
- 高并发 (22)
- jdk (4)
- 领域驱动 (1)
- 坑 (6)
- 表达式框架 (7)
- 游戏 (3)
- Guava (1)
- 缓存 (1)
- 数据库 (1)
- 游戏项目 (3)
- java8 (1)
最新评论
-
hsluoyz:
PyCasbin是一个用Python语言打造的轻量级开源访问控 ...
权限管理的一个简单后台 -
liuyachao111:
谢谢 问题解决了
对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾 -
jnjeC:
多谢博主分享,在配置文件里的&也要改成& ...
对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾 -
大维啊:
同志,你这不行啊!
java 的 AccessController.doPrivileged使用 -
lisha2009:
解决了我的问题,多谢博主分享!
对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾
大家看看这个代码有什么问题,我的想法是删除list的第一个元素
public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("aaaa"); list.add("bbbb"); List<String> subList=new ArrayList<String>(); subList=list.subList(0, 1); list.removeAll(subList); }
然后北极的发型报错了:
Exception in thread "main" java.util.ConcurrentModificationException at java.util.SubList.checkForComodification(AbstractList.java:752) at java.util.SubList.listIterator(AbstractList.java:682) at java.util.AbstractList.listIterator(AbstractList.java:284) at java.util.SubList.iterator(AbstractList.java:678) at java.util.AbstractCollection.contains(AbstractCollection.java:82) at java.util.AbstractCollection.removeAll(AbstractCollection.java:336) at com.T.main(T.java:15)
为什么呢?想不通啊。后来才发现这个是subList引起的:
subList其实是保留了原来的list的一个引用的
class SubList<E> extends AbstractList<E> { private AbstractList<E> l; private int offset; private int size; private int expectedModCount;
public List<E> subList(int fromIndex, int toIndex) { return (this instanceof RandomAccess ? new RandomAccessSubList<E>(this, fromIndex, toIndex) : new SubList<E>(this, fromIndex, toIndex)); }
SubList(AbstractList<E> list, int fromIndex, int toIndex) { if (fromIndex < 0) throw new IndexOutOfBoundsException("fromIndex = " + fromIndex); if (toIndex > list.size()) throw new IndexOutOfBoundsException("toIndex = " + toIndex); if (fromIndex > toIndex) throw new IllegalArgumentException("fromIndex(" + fromIndex + ") > toIndex(" + toIndex + ")"); l = list; offset = fromIndex; size = toIndex - fromIndex; expectedModCount = l.modCount; }
可以看到是通过this把原来的list传进去的,subList其实是保留了原来的list的引用。
当执行removeAll的时候,会去subList遍历所有的元素,符合条件的就删除,list的每个操作都会modCoun加一
public E remove(int index) { RangeCheck(index); modCount++;
而subList的next操作会去检查这个值,(注意subList检查的是引用list的modCount,他没有自己的)。
private void checkForComodification() { if (l.modCount != expectedModCount) throw new ConcurrentModificationException(); }
所以list.removeAll(subList);
public boolean removeAll(Collection<?> c) { boolean modified = false; Iterator<?> e = iterator(); while (e.hasNext()) { if (c.contains(e.next())) { e.remove(); modified = true; } } return modified; }
必然会执行subList的next,如果list已经删掉了一个元素,那么modCount 必定会改变,就会抛出异常了。
发表评论
-
超级简单的获取url内容的代码
2016-09-09 16:33 1601只是需要一行代码: String result = new S ... -
java的int和byte数组的相互转换
2015-01-15 16:31 2928byte数组转为int 有两种原理, 一种是先左移动24位,在 ... -
@RequestBody注解时 HttpClient 发送post的例子
2015-01-12 10:33 6784主要是这句: post.setRequestEntity(ne ... -
mvel表达式遇到的坑2 这个更坑
2015-01-09 17:53 6773之前写的一篇文章说的mvel遇到的坑 解决办法是*1.0,这次 ... -
利用javassist获取java的方法参数名
2014-03-22 20:53 6393import java.lang.reflect.Meth ... -
java利用linq4j实现linq
2014-01-13 20:58 10527public class Person implement ... -
访问类本身的私有变量,很不理解的地方
2013-09-30 17:50 1664网上看到这个文章,表示没理解.http://my.oschin ... -
java的DirectBuffer源码分析(主要是DirectBuffer的资源分配和回收)
2013-04-16 17:22 7454可以看到淘宝的一个说明:http://www.tbdata.o ... -
设置log4j的配置文件(里面有不少坑)
2013-04-12 15:59 2052log4j的默认配置文件是log4j.properties,加 ... -
庖丁分词的源码分析
2013-04-08 17:50 3124在网上也看到了不少庖 ... -
eclipse代码行数统计插件
2013-04-08 16:14 6069觉得不错的一个插件,把附件里的压缩文件,解压,放在eclips ... -
关于eclipse 找不到pom文件中的jar包的问题
2013-04-08 15:59 2287我从网上下载呢一个maven的项目,install也成功了,却 ... -
java的volatile与多线程
2013-02-21 16:37 2202Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员 ... -
分享视频网站的内容时 缩略图的生成
2013-02-03 09:32 1946分享视频网站的内容时 ,一般都有缩略图的生成,之前没怎么关心, ... -
Runtime.getRuntime().exec 杀人放火利器啊
2013-01-05 16:49 2298public static void main(String[ ... -
split的正则表达式
2012-12-24 14:44 1552我们很经常做得一个事情,一句话,按空格来切分 String s ... -
解决eclipse控制台中文乱码的问题
2012-12-20 14:48 3164二、配置java应用程序的控制台输出。 1.Run ... -
eclipse 重新关联源代码
2012-12-17 09:16 1707eclipse 重新关联源代码 可以右键工程属性 -- pr ... -
maven私服的400和401错误
2012-12-03 17:33 2873400错误是因为没有打开访问,改为下图这样 401错误是没 ... -
SQL_NO_CACHE不起作用,郁闷
2012-12-03 14:53 1816mysql设置了查询缓存,但是第二次的时候就是0秒了,用SQL ...
相关推荐
sublist master exist git
在Java编程中,`subList`方法是`ArrayList`、`LinkedList`等集合类的一个重要功能,它允许我们从原始列表中创建一个子列表,这个子列表是原列表的一个视图,而不是复制。当我们调用`subList`时,对子列表的操作会...
英语Sublist list1答案
Sublist3r是一个基于Python2.7的子域发现工具,其设计原理是基于通过使用搜索引擎,从而对站点子域名进行列举,旨在使用来自公共资源和暴力技术的数据枚举网站的子域。公共资源包括广泛的流行搜索引擎,如谷歌,雅虎...
【学术英语词汇Sublist7前十个词汇及题目答案解析】 学术英语是专业英语的一种,它在学术交流、科研论文和高等教育中广泛使用。Sublist7是学术英语词汇的一部分,涵盖了一些核心和重要的词汇,这对于提升学术英语...
Arrays.asList、ArrayList的subList坑
2. **并发修改异常**:如果原ArrayList在多线程环境下被修改,而subList同时也在另一个线程中使用,可能会引发`ConcurrentModificationException`,因为修改原ArrayList会影响subList的视图。 3. **不可预测的行为*...
Beauty Sublist3r Sublist3r是一个python工具,用于枚举使用OSINT的网站的子域。它有助于渗透测试人员和漏洞猎手收集并收集他们所针对的域名的子域名。Sublist3r使用Google,Yahoo,Bing,百度和Ask等许多搜索引擎来...
List接口中的subList方法提供了一种简单的方式实现分页功能。下面详细介绍如何利用subList方法进行分页以及PageModel类的实现。 首先,了解`subList`方法。在Java中,`List`接口提供了`subList(int fromIndex, int ...
关于Sublist3r Sublist3r是一个python工具,旨在使用OSINT枚举网站的子域。 它可以帮助渗透测试人员和Bug猎手收集和收集他们所针对的域的子域。 Sublist3r使用许多搜索引擎(例如Google,Yahoo,Bing,Baidu和Ask)...
标题“星空_sublist.zip”暗示了这是一个包含有关天文学信息的压缩文件,特别是与星空、星座和恒星相关的数据。这个文件可能是一个Python项目,用于分析、可视化或学习天文知识。描述中提到“Python直接读取”,意味...
在学术英语(Academic English)的学习中,掌握特定的词汇是非常关键的,特别是Sublist 7中的单词。Sublist 7是一系列学术词汇列表的一部分,旨在帮助学生和研究人员提升他们在学术环境中有效沟通的能力。以下是对其中...
欢迎来到列表分析任务您将获得一个包含字符和数字的列表。 您需要在Python 3中编写一个函数,该函数标识包含相同数量字符和数字的最长子列表。 返回带有开始和结束索引的元组。 如果此子列表为空,则返回(0,0)。...
资源分类:Python库 所属语言:Python 资源全名:Sublist3r_lib-1.0.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
1. Sublist 1 包含了分析(analyze)、方法(approach)、领域(area)、评估(assess)等词汇,这些都是撰写论文或进行研究时常见的概念。例如,分析数据、采用特定方法、探讨某个领域的问题等。 2. Sublist 2 ...
【学术英语词汇Sublist7】是针对学术场景中常见的词汇进行学习和练习的一个部分,它旨在帮助学习者提升在学术环境中运用英语的能力。这个部分包含了前十个词汇的习题解析,通过对这些习题的解答,可以帮助学生更好地...
在IT领域,尤其是在Java编程中,多线程和网络通信是两个重要的概念,它们在构建高效、可扩展的系统中起着关键作用。本题目"ssd8 exercise1"涉及了这两个主题,提供了老师给出的标准答案,让我们来深入探讨一下。...
然后,将使用Sublist3r垂直枚举每个水平域。 然后可以将输出用于portcans等。 水平枚举: 在公司注册商名称上 提供的域名 垂直枚举: 在水平枚举过程中找到的所有域上 用法 fransRecon.py example.com 请注意,...
除了sublist3r的所有原始OSINT功能之外,turbolist3r还会自动进行一些结果分析,并着重于子域接管。 Turbolist3r向公共DNS服务器查询每个发现的子域。 如果存在子域(即,解析器已答复地址),则答案归为CNAME或A...
这将创建一个占比20%的子列表`sublist_1`作为验证集,剩余80%的`sublist_2`作为训练集。 在实际应用中,如果你的数据存储在文件中,可以先使用Python的`readlines()`或`pandas`库的`read_csv()`等方法将数据读入...