package com.yonge.concurrent;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
/**
* 需求:解决hashset并发产生的java.util.ConcurrentModificationException异常
* @author wb-gaoy
* @version $Id: HashSetTest.java,v 0.1 2012-1-11 下午5:14:53 wb-gaoy Exp $
*/
public class HashSetTest {
public static void main(String[] args) {
final Set<Integer> set = Collections.synchronizedSet(new HashSet<Integer>());
//开启A线程向set中放数据
new Thread(new Runnable() {
@Override
public void run() {
int i;
while (true) {
try {
i = new Random().nextInt(1000);
System.out.println("准备加入到Set...");
set.add(i);
System.out.println("加入到Set:" + i);
} catch (Exception e) {
e.printStackTrace();
break;
}
}
System.exit(0);
}
}, "A").start();
//开启B线程删除set中的数据
new Thread(new Runnable() {
@Override
public void run() {
Iterator<Integer> iter = null;
while (true) {
synchronized (set) {
try {
iter = set.iterator();
System.out.println("开始迭代..");
int i;
while (iter.hasNext()) {
System.out.println("准备删除Set....");
i = iter.next();
iter.remove();
System.out.println("删除Set:" + i);
}
} catch (Exception e) {
e.printStackTrace();
break;
}
}
}
System.exit(0);
}
}, "B").start();
}
}
分享到:
相关推荐
Java中HashSet的解读_.docx
import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * @author: Raicho * @Description: * @program: mianshi * @create: 2020-07-17 15:32 **/ public class ...
import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; public class HashSetTest { public static void main(String[] args) { HashSet hs = new LinkedHashSet(); hs....
自己写的例子,关于HashSet遍历和HashMap遍历的. 感谢大家参考
import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Properties; import java.util.Set; import java.util.regex.Matcher; import ...
hashSet底层去重原理
HashSetHashSetHashSetHashSetHashSetHashSetHashSetHashSetHashSet
常用的类:Array 包装类 BufferedReader BufferedWriter FileReader FileWirter String Integer java.util.Date System Class(反射的核心类) 实现集合接口类HashMap ArrayList LinkedList HashSet java.lang.String ...
java
import java.util.*; public class Set{ public static void main(String[] args) { //先实例化一个set Set<String> stringSet=new HashSet(); //向set里面添加元素 stringSet.add("123"); stringSet.add(...
import java.util.HashSet; import java.util.List; import java.util.Random; import java.util.Set; import rescuecore2.Constants; import rescuecore2.config.Config; import rescuecore2.messages.Command; ...
import java.util.HashSet; import javax.swing.JFrame; import javax.swing.JOptionPane; /** * 聊天室服务器端 ChatRoomServer类 * * @version 1.01, 09/04/10 */ public class ChatRoomServer { private ...
Class005_HashSet.java
java.util包中定义了各种用于集合操作的类和接口,这些类和接口构成了Java语言的集合框架(Collection Framework)。 Java集合中可以放对象,不能存放基础数据类型数。 Collection Framework 根据不同类型的集合的特点...
import java.util.HashSet; import java.util.LinkedList; import java.util.Set; import chy.snake.listener.SnakeListener; import chy.snake.util.Global; public class Snake { public static final int up...
1.0.1'节省 25% 的内存Java 中的对象大小: : : Davlik 中的对象大小: : 事实上, java.util.HashSet只是一个包装java.util.HashMap ,所以所保留的堆大小为O( n * entry_size )。 java.util.HashMap使用单独的...
import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Set; import android.content.Context; import android.graphics.Canvas; import ...
一个通过httpclient抓取火车票信息的程序,需要修改下才能跑通,需要自己封装下httpclient,然后用get方式调用,还有fastJson,... import java.util.HashSet; import java.util.Iterator; import java.util.Ma