- 浏览: 205300 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (153)
- (201109)一、java技术基础 (31)
- (201109)二、java源码学习 (0)
- (201109)三、系统分析与设计 (23)
- (201109)四、系统性能调优 (1)
- (201109)五、软件工程与项目管理 (6)
- java 基础_多线程与同步 (9)
- java 基础_IO流 (2)
- java 基础_Effective Java 读书笔记 (1)
- 1.3、J2ee应用技术 (6)
- 1.4、Java数据结构与算法 (8)
- 2.1、 web 基础 (4)
- 5. 开发环境与开法工具 (18)
- 6. 数据库技术 (4)
- 7、操作系统与应用服务器 (15)
- 4.新技术 (4)
- 9. 临时目录 (8)
- Struts/Spring/Hibernate学习 (8)
- java 异常 (1)
- java 日志 (1)
- 问题与积累 (3)
最新评论
-
season2016:
好人,,,,,,,
《Head First 设计模式》附书源码 -
huanlegu0426:
完善自我 写道对WEB-INF文件夹有了进一步的了解,谢谢博主 ...
Java EE中的Web项目的目录文件结构 -
完善自我:
对WEB-INF文件夹有了进一步的了解,谢谢博主分享。
Java EE中的Web项目的目录文件结构 -
love:
学习。
高手,09年就有这么多技巧了!
Eclipse常用技巧总结:热键,自定义模版及其他 -
j_peng:
ccxw1983 写道运行下就不动了,也不死,运行结果:c2要 ...
Java多线程 生产者-消费者模式
Collection和Map的视图技术,令我豁然开朗!
比如:Map.keySet(),Map.values(),Map.entrySet().可以得到三个视图:键值,值,键/值对。对视图的操作,
将直接影响原始集合!
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; /** * 集合框架视图技术; * */ public class CollectionView01 { public void viewOper() { String[] temp = new String[3]; //返回一个视图对象,你只能使用get(),set()方法访问底层的数组,而任何尝试 //改变数组大小的方法都抛出UnsupportedOperationException。 List<String> tempList = Arrays.asList("aa", "bb", "cc"); System.out.println("01 = " + tempList.get(0)); System.out.println("02 = " + tempList.set(1, "ddd")); System.out.println("03 = " + tempList.get(1)); //返回一个实现了list接口不可修改的对象; List<String> settings = Collections.nCopies(5, "Baby"); String testStr0 = settings.get(0); String testStr1 = settings.get(1); System.out.println(testStr1 == testStr0);//返回true System.out.println(testStr0 + " " + testStr1); System.out.println("settings01 =" + settings); //抛出UnsupportedOperationException //System.out.println("set01 =" + settings.set(1, "bbb")); //抛出UnsupportedOperationException //settings.add("B"); System.out.println("settings02 =" + settings); } /* * 可以为许多集合建立子范围视图!任何操作 * 作用于子范围,他们都能通过在这个集合中反映出来! */ public void viewSub() { List<String> tempList = new ArrayList<String>(); for (int i = 0; i < 10; i++) { tempList.add("" + i); } //返回子范围视图; List subList = tempList.subList(3, 7); System.out.println(subList);//[3, 4, 5, 6] System.out.println("01 = " + subList.get(0)); System.out.println("02 = " + subList.set(0, 33)); System.out.println(subList); subList.clear(); System.out.println(tempList);//[0, 1, 2, 7, 8, 9] } /* *如果你想查看代码的某个部分但不修改某个集合的内容可以考虑以下方法; *注:不可修改视图不是本身不可修改,通过集合的原始引用, *我们仍然能够做集合想做的事情。视图只包装了接口而不是实际的对象。 */ public void viewUnmodif() { // Collections.unmodifiableCollection() // Collections.unmodifiableList() // Collections.unmodifiableMap() // Collections.unmodifiableSet() // Collections.unmodifiableSortedSet() // Collections.unmodifiableSortedMap() List<String> tempList = new LinkedList(); for (int i = 0; i < 10; i++) { tempList.add("" + i); } //返回不可修改视图 List<String> unmodifiableList = Collections.unmodifiableList(tempList); String temp = unmodifiableList.get(1); System.out.println("01 = " + tempList); tempList.add("baby"); System.out.println("02 = " + tempList); unmodifiableList.add("bb"); //抛出UnsupportedOperationException System.out.println("03 = " + tempList); } public void viewSyn() { // 多线程来访问一个集合!我们能够想象会发生什么。 // 一个线程试图将一个元素添加到散列表中,而另一个线程或者正在遍 // 历,或者对元素重新散列!或者...... // Java的设计者没有实现“安全集合类”,而是使用视图机制来保证集合线程的安全! // HashMap<String,String> hashMap=new HashMap<String,String>(); // Map<String,String> map=Collections.synchronizedMap(hashMap); // map引用将会使得一切恢复正常!不必担心同步的问题!但是这个包装器的作用有限: // 推荐使用:java.util.concurrent中定义的集合类! } public void viewCheck() { } public static void main(String[] a) { CollectionView01 view = new CollectionView01(); //轻量级集合包装器Arrays和Collections ; //view.viewOper(); //子范围视图 //view.viewSub(); //不可修改视图 //view.viewUnmodif(); //同步视图 view.viewSyn(); //被检验视图 view.viewCheck(); //可选操作的说明 //view. } }
发表评论
-
好书记录
2011-11-07 23:28 986struts2方面 个人觉得网络资源数浪曦的视频最好了; S ... -
项目组内部推荐书目
2011-06-18 15:45 1166项目组内部推荐书目 项目组内部推荐书目 零 ... -
Java深度历险
2011-05-12 01:19 609Java深度历险: http://www.infoq.com/ ... -
java积累/问题
2009-12-25 21:35 999积累: 1、JVM,JRE, JDK关系: JVM : Ja ... -
String和Date互转
2009-09-18 22:41 7991.Date转String SimpleDateForm ... -
java.lang注解符号类型
2009-08-23 12:54 15174.6. 注解符号类型 java.lang.Deprecate ... -
java 类加载机制
2009-07-15 16:14 850下载:深入Java类装载机制.pdf ; JVM启动时的三 ... -
java 工具篇
2009-06-24 23:47 669工具篇 一、 JDK (Java De ... -
Camparable与Comparator_03
2009-06-02 20:04 992区别很简单 一个类实现了Camparable接 ... -
Camparable与Comparator_02
2009-06-02 20:03 968从名字上可以看出来, Comparator是比较器,也 ... -
Camparable与Comparator_01
2009-06-02 16:28 1050import java.util.Arrays; im ... -
什么时候用assert
2009-06-02 12:33 2290什么时候用assert。 断言是一个包含布尔表达式 ... -
Java内部类(Inner Class)详解
2009-06-01 00:00 1435Java内部类(Inner Class)详解 ... -
浅谈Java内部类的四个应用场景
2009-05-31 23:53 1132幕后英雄的用武之地——浅谈Java内部类的四个应用场景 ... -
Java关键字04
2009-05-31 21:37 827class Test { static int i = 0 ... -
Java关键字03
2009-05-31 21:37 7063.transient 变量修饰符。标记为transient的 ... -
Java关键字02
2009-05-31 21:31 713Java代码 public interfa ... -
Java关键字01
2009-05-31 21:30 1002Java关键字(keywords) abstract ... -
Java关键字final
2009-05-31 21:28 498Java的关键字final的含义存在着细微的区别,但通常 ... -
Java 关键字汇总
2009-05-31 21:24 10311、访问控制: private 私有的 protected 受 ...
相关推荐
### Java集合框架使用总结 #### 一、概述 在Java编程中,集合框架是一个非常重要的概念,它提供了标准的方式来存储和操作数据集合。Java集合框架的设计原则是将数据结构抽象成一组接口,再通过不同的实现类来具体...
10. **不可变集合**:`Collections.unmodifiable*()`方法可以创建只读的集合视图,防止修改原始集合。`Collections.emptyList()`, `Collections.emptyMap()`等工厂方法提供了空集合实例。 在实际开发中,理解并熟练...
Java集合与通用集合是Java编程中的重要组成部分,主要用于存储和管理对象。集合框架自Java 1.2引入以来,已经成为Java开发中不可或缺的工具。在Java高级编程中,理解并熟练掌握集合的使用至关重要。 首先,集合框架...
在Java编程中,对象复制是一项常见的任务,特别是在处理模型(Model)和视图对象(VO)时。模型对象通常用于封装业务数据,而视图对象则用于展示这些数据。值复制,即对象属性值的复制,是保持数据一致性和简化代码...
5. **集合框架**:Java集合框架包括接口(如List、Set、Map)和实现类(如ArrayList、LinkedList、HashSet、HashMap等),用于存储和操作对象。 6. **IO流**:Java的IO流用于读写文件、网络通信等,分为字节流和...
Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的接口和类。这个框架包括了Collection、List、Set和Map四大接口,以及它们的各种实现类。了解和掌握这些概念对于任何Java开发者来说...
Java集合框架是Java编程语言中的一个核心组件,它为存储、管理和操作对象提供了一套统一的接口和类。集合框架使得开发者可以更加高效地处理数据,而无需关注底层的实现细节。本文将深入探讨Java集合框架的主要组成...
### Java集合类总结 #### 一、概述 Java集合类框架是Java标准库的一个重要组成部分,主要用于存储和处理数据集合。这些集合类被定义在`java.util`包中,为开发者提供了灵活的数据结构来实现各种应用程序的需求。...
Java Web开发技术是现代互联网应用开发的重要组成部分,它基于Java平台,主要涵盖了J2EE(Java 2 Platform, Enterprise Edition)框架,用于构建分布式、多层的企业级应用程序。本教程将深入讲解Java技术在Web开发中...
Struts提供了动作调度、表单验证、国际化等功能,并且与各种视图技术如JSP、FreeMarker等良好集成。理解Struts的配置、拦截器、Action和结果映射等概念,是掌握企业级JAVA开发的关键。 JSF(JavaServer Faces)是另...
“2.4 Java集合类图.jpg”可能包含了以上所有接口和类的综合视图,同时可能还包括了一些高级主题,如Queue、Deque、PriorityQueue等。 理解Java集合框架的关键在于掌握每个接口的特点和其实现类的性能特征。在实际...
虽然Map提供了一些方法可以获取key或value的集合视图,但这些视图仍然是基于Map的特定结构,而不是简单的元素集合。 Iterator接口是用于遍历集合的工具,它可以安全地在迭代过程中移除元素。相比于Enumeration,...
根据给定的信息,本文将详细解析“Tedu一段Java集合Collection”的知识点,涵盖集合的基本概念、集合框架中的关键接口、`Collection`接口的核心方法、集合的遍历方式、泛型的应用以及集合与数组之间的相互转换。...
【Java Map 集合类简介】 在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别...
此外,异常处理、垃圾回收机制、集合框架、IO流、多线程和网络编程也是Java开发者必须掌握的关键知识点。这些基础知识构成了Java程序员的基石,为理解和应用更复杂的框架打下了坚实的基础。 在Java框架方面,Spring...
`Collections.unmodifiable*()`方法可以创建只读的集合视图,防止对集合的修改。`Collections.empty*()`则提供空集合的实例。 10. **性能优化** 在使用集合框架时,应考虑对象的初始容量、负载因子等参数,以减少...
集合视图版本兼容性当前版本的集合视图已通过认证,可与以下lambda版本兼容: 5.3.0 5.2.0 5.1.0 5.0.0 4.0.0目录 ImmutableVector<A> ImmutableNonEmptyVector<A> Set<A> NonEmptySet<A> ImmutableSet<A> ...