- 浏览: 900739 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (354)
- Java学习 (122)
- jstl el表达式 (2)
- struts2 标签 (6)
- Ibatis (14)
- S2SH (3)
- struts2 json (2)
- JDK1.6-JDK1.5 (1)
- spring mvc (1)
- 工作项目开发 (8)
- jxl (3)
- jqgrid (9)
- POI (10)
- jQuery (9)
- itext (11)
- oracle (56)
- js (20)
- treegrid (1)
- myeclipse (4)
- Jforum (1)
- iphone (2)
- 角色权限 (1)
- Log4J (5)
- WebService (1)
- spring定时 (1)
- swfupload (12)
- Servlet (1)
- KindEditor (1)
- Java学习,httpclient (2)
- http (4)
- datagrid (1)
- KinSlideshow (1)
- android (7)
- html (1)
- CSS (1)
- 正则表达式 (3)
- easyui (6)
- JSONP (1)
- SQLServer (1)
- tomcat (2)
- Spring (4)
- Jquery plugins (2)
- windows7 (3)
- bootstrap (1)
- FreeMarker (1)
- flex (1)
- ExtJS (6)
- tTP-Link (1)
- MySQL (4)
- JavaScript (3)
- Notepad++ (1)
- ora (1)
- C语言 (1)
- 计算机 (1)
- DWR (2)
- 吉他 (1)
- hibernate (1)
- eclipse (1)
最新评论
-
天使建站:
这里的这篇文章写得很好:http://www.aijquery ...
jS 如何删除二维数组的重复项 -
羽翼的心动:
POI处理的格式单一,无法导出格式比较复杂的表格。POI不能使 ...
poi合并单元格同时导出excel -
zhixinhuacom:
jqgrid 按回车键默认提交数据,怎么做才能时回车不提交数据 ...
JQgrid要实现在jqGrid表格上动态的加行、删行,最后点击“保存”按钮,与后台交互,保存数据 -
w_mojian180:
nice 很多情况都是因为引入文件导入
Uncaught SyntaxError: Unexpected token < -
springdata_springmvc:
bootstrap demo实例教程源代码下载:http:// ...
bootstrap-switch开关按钮表单插件
发现 Set和HashMap之间还是有很多需要注意的地方:
HashMap<String,String> map = new HashMap<String,String>();
map.put("1", "aa");
map.put("2", "bb");
map.put("3", "aa");
Set<String> set = map.keySet();
1. map的keySet()方法只返回一个set实例,所以当从key1中删除一个对象时候,其他也将会受到影响。
2. 针对于 set不能进行 add操作 ,否则会报“java.lang.UnsupportedOperationException” 。原因 如下 :
public Set<K> keySet()返回此映射中所包含的键的 set 视图。该集合受映射的支持,所以映射的变化也反映在该集合中,反之亦然。该集合支持元素的移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作,从该映射中移除相应的映射关系。它不支持 add 或 addAll 操作。
3.
Set<String> set= map.keySet();
for (String key : set) {
map.remove(key);
}
此代码 报这个异常: Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at com.nan.an.jing.TestSet.main(TestSet.java:23)
原因 为 : 因为删除了一个Entry之后,因为ketSet不正确,在for循环时出的问题。
改正的方法为:
String[] keySet = map.keySet().toArray(new String[0]);
for (String key : keySet) {
map.remove(key);
}
或者
Object[] keySet = map.keySet().toArray();
for (Object key : keySet) {
map.remove((String)key);
}
附注 : 代码实例
- package com.nan.an.jing;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.Map.Entry;
- import java.util.Set;
- public class TestSet {
- public static void main(String[] args) {
- HashMap<String,String> map = new HashMap<String,String>();
- map.put("1", "aa");
- map.put("2", "bb");
- map.put("3", "aa");
- map.remove("1");
- //必须转换为array,或者 String[] keySet = map.keySet().toArray(new String[0]);
- Object[] keySet = map.keySet().toArray();
- for (Object key : keySet) {
- map.remove((String)key);
- }
- System.out.println(map);
- // set仅仅一个实例,set删除,map也跟随删除
- Set<String> set = map.keySet();
- set.remove("1");
- System.out.println(set);
- System.out.println(map);
- // 采用 iterator方法删除 map
- for(Iterator<String> iterator = set.iterator();iterator.hasNext();)
- {
- iterator.next();
- iterator.remove();
- }
- System.out.println(map);
- // 采用iterator方法获取map信息
- Set<Entry<String, String>> set0 = map.entrySet();
- for(Iterator<Map.Entry<String, String>> iterator = set0.iterator();iterator.hasNext();){
- Map.Entry<String, String> mm = iterator.next();
- String key1 = mm.getKey();
- String value = mm.getValue();
- }
- System.out.println(set0);
- // 采用list增加元素
- HashMap<String,String> map1 = new HashMap<String,String>();
- map1.put("1", "aa");
- map1.put("2", "bb");
- Set<String> set1 = map1.keySet();
- List<String> ll = new ArrayList<String>();
- for(String ss : set1){
- ll.add(ss);
- }
- ll.add("cc");
- System.out.println(ll);
- System.out.println(map1);
- }
- }
http://www.360doc.com/relevant/117933138_more.shtml
转载自:http://blog.csdn.net/qingchun1987_303/article/details/7243973
发表评论
-
Java中List Set Map 是否有序等总结
2015-05-05 11:09 722转http://blog.csdn.net/zhengqiq ... -
ava操作word宏
2015-04-29 10:44 524转:http://aa8945163.iteye.com/b ... -
System.load 和 System.loadLibrary详解
2015-04-09 10:50 647转:http://www.cnblogs.com/h ... -
(转)谈谈对Java中Unicode、编码的理解
2015-03-03 11:07 416转:http://www.cnblogs.com/newst ... -
HTTP status code 说明
2015-01-15 16:15 475200 – 服务器成功返回 ... -
JAVA邮件发送
2015-01-13 16:56 620转:http://www.cnblogs.com/codep ... -
Java排序算法 记录
2015-01-13 10:24 416转:http://www.cnblogs.com/dians ... -
java中volatile关键字
2015-01-05 14:30 486转:http://www.cnblogs.com/aigon ... -
4.1 Servlet简介
2014-12-22 16:34 413转:http://www.blogjava.net/ ... -
在 Windows 中实现 Java 本地方法
2014-12-21 15:18 458转:http://www.ibm.com/devel ... -
严重: Error listenerStart
2014-11-18 17:14 4142007-5-31 14:27:13 org.apache. ... -
java.security.AccessControlException: access denied 的解决方法
2014-11-07 22:07 3331转:http://blog.csdn.net/maomao ... -
Linux下反斜杠号"\"
2014-10-27 13:36 2489转:http://www.cnblogs.com/Muyou ... -
@override在JDK1.5和JDK1.6中用法区别
2014-10-14 22:54 397转:http://gaowenming.iteye.com/ ... -
ClientAbortException:java.io.IOException解决方案
2014-09-09 10:13 12550转:http://blog.sina.com.cn/s/bl ... -
SchedulerFactoryBean 注入
2014-08-26 10:19 812转:http://blog.csdn.net/neutro ... -
Spring 3整合Quartz 2实现定时任务二:动态添加任务
2014-08-26 09:47 816转:http://www.meiriyouke.net/?p ... -
Spring 3整合Quartz 2实现定时任务一:常规整合
2014-08-26 09:45 655转:http://www.meiriyouke.net/?p ... -
Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
2014-08-26 09:21 2238转http://my.oschina.net/u/1177 ... -
java.lang.UnsupportedClassVersionError: Bad version number in .class file
2014-08-18 16:45 373今天新建了一个基于jdk6的工程,在tomcat中部署之后, ...
相关推荐
在AS3中,我们经常会用到几种数据结构,如ArrayList、Set和HashMap,这些数据结构在处理和组织数据时非常有用。这篇博客(尽管链接无法直接查看)可能详细介绍了如何在Flash CS6中导入外部的SWC文件,并在AS3项目中...
在Java中,最常见的对象容器包括ArrayList、List、Set和HashMap等。这些容器各自具有不同的特性和用途,理解并熟练掌握它们对于提升Java编程能力至关重要。 ArrayList是Java集合框架中的一个动态数组,它允许我们在...
在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程需求。本文将重点分析这三种数据结构之间的区别,特别是针对...
这些数据结构用于存储和管理数据,其中HashMap和HashSet是基于哈希表实现的,而TreeMap和TreeSet则是基于红黑树(Red-Black Tree)实现的。在处理元素重复性时,它们有不同的策略和效率。 **HashMap** HashMap是一...
Java 笔试题 2011,涵盖了 Java 中的访问权限控制、List 的非同步实现类、Spring 的自动装配机制、Servlet 和 Jsp 页面的会话管理、J2EE 事务管理、线程状态、UML 中的类管理关系、Set 和 HashMap 中的元素特点等...
在Java编程语言中,`Hashtable` 和 `HashMap` 都是用来存储键值对的数据结构。这两种数据结构虽然相似,但是在实现细节上存在显著差异。 1. **Hashtable**:作为 `Dictionary` 类的子类,`Hashtable` 是 Java 最早...
Java集合专题总结:HashMap和HashTable源码学习和面试总结 本文总结了Java集合专题中的HashMap和HashTable,涵盖了它们的源码学习和面试总结。HashMap是一种基于哈希表的集合类,它的存储结构是一个数组,每个元素...
集合和映射提供了更高级的数据组织方式,如Set和HashMap,它们支持特定类型的元素存储和快速查找。 接下来,我们讨论算法。算法是解决问题或执行任务的明确规范,是计算机科学的灵魂。在Java中,算法分为搜索算法、...
Java 相关知识点总结 Java 是一种广泛应用的编程语言,以下是关于 Java 相关知识点的...八、Set 和 HashMap 的特点 Set 中的元素可以为 null,但不可以重复。HashMap 中的 Key 不可以为 Null,value 可以为 Null。
八、Set 和 HashMap Set 中的元素可以为 null,但不可以重复。HashMap 中的 Key 不可以为 Null,value 不可以为 Null。 九、访问修饰符和继承 访问修饰符的使用会影响类和方法的访问权限。在继承关系中,子类可以...
- **允许空键和空值**:`HashMap` 允许一个 null 键和多个 null 值。 - **应用场景**:适用于需要快速查找、插入和删除键值对的场景。例如,存储配置项、缓存数据等。 ### Vector vs ArrayList #### 区别 - **线程...
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,虽然它们实现的接口规范不同,但它们底层的 Hash 存储机制完全一样。甚至 HashSet 本身就采用 HashMap 来实现的。 2. Hash 存储机制 HashMap ...
Set和HashMap Set中的元素不允许重复,HashMap中的Key不允许为Null,value允许为Null。 Java访问修饰符 假设类A的某个成员方法a()分别具有public、私有、protected、default的访问修饰符,如果希望在B类中调用A的...
为了解决这些问题,HashMap需要重写hashCode和equals方法,以确保两个不同的Key具有不同的哈希码和equals结果。同时,HashMap也需要处理哈希碰撞问题,例如使用链表来存储发生哈希碰撞的Key-Value对。 HashMap是一...
在Java编程中,HashMap集合是开发者经常使用的数据结构之一,尤其在处理大量数据时,它的高效性和灵活性使得它成为首选。HashMap是Java集合框架的一部分,位于`java.util`包下,实现了Map接口,用于存储键值对(key-...
该项目的主要目的是熟悉Java集合框架中的`HashMap`类,并了解如何利用它来存储、管理和检索数据。此外,我们还将学习如何使用`Scanner`类从键盘接收用户输入。 #### 二、实验需求分析 根据题目要求,我们需要完成...
liballoc 中的 hashmap 默认使用 SipHash,它并没有我们想要的那么快。在编译器中,我们并不真正担心 DOS 尝试,因此我们使用快速非加密哈希。 这与 Firefox 使用的算法相同——它是一种不基于任何广为人知的算法的...
在本教程中,我们将深入探讨如何使用HashMap来实现产品的创建(Create)、读取(Read)、更新(Update)和删除(Delete),这对于初学者来说是一个很好的实践案例。 **1. HashMap基础** HashMap在内部使用了哈希表...
`HashMap`使用哈希表实现,提供快速的插入、删除和查找操作。当我们需要遍历`HashMap`中的所有元素时,通常会使用`Iterator`接口,它是Java集合框架的一部分,提供了对集合的迭代访问。 `Iterator`接口定义了三个...
在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...