Java容器学习笔记(由java编程思想和网上资料整理而成)
2006-06-27 13:35
751 查看
Java2容器库所解决的是对象持有的问题,并将它区分卫两个不同的概念:
1.Collection: 一组各自独立的元素,通常拥有相同的套用规则,List必须以特定的次序来持有各个元素;Set无法拥有重复元素;ArrayList是一种List,HashSet则是一种Set;add()方法可将元素加入任何一种Collection。
2.Map: 一群成对的key-value对象,不接受重复元素;欲将元素加至Map,可使用put()方法。
Collection在控制台打印结果时以方括号括住,每个元素间以逗号分隔;Map的打印结果则以大括号括住,key和value以等号相连,key在左侧,value在右侧。
Java容器的一个重要特性:容器中存放的是java对象的引用。
Java容器的缺点是,一旦将对象置于容器内,你便损失了他们的型别信息。由于型别信息已失,所以容器惟一知道的事情就是,它所持有的乃是指向对象的一些references,使用之前你必须将元素转卫正确型别,如果将元素从容器中取出并将其转换为不正确的型别,将会得到执行期错误。
List会以元素安插次序来放置元素,不会重新排列;Set,Map则都有自己的内部排列机制。
hash code是一种“将对象内的某些信息转换为几乎独一无二”的int,用以代表这个对象;所有java对象都可以产生hash code,而且hashcCode()是根源于Object所具备的函数。HashMap会运用对象的hashCode(),并利用它来快速查找到key。
Object的hashCode()会被用来产生每个对象的hash code,而且缺省的情况下它直接使用其对象的内存地址;同样的,缺省的Object.equals()只会比较对象的内存地址。因此,当在HashMap中使用自己编写的classes作为key,一定要同时覆写hashCode()和equals()
1.Collection: 一组各自独立的元素,通常拥有相同的套用规则,List必须以特定的次序来持有各个元素;Set无法拥有重复元素;ArrayList是一种List,HashSet则是一种Set;add()方法可将元素加入任何一种Collection。
2.Map: 一群成对的key-value对象,不接受重复元素;欲将元素加至Map,可使用put()方法。
Collection在控制台打印结果时以方括号括住,每个元素间以逗号分隔;Map的打印结果则以大括号括住,key和value以等号相连,key在左侧,value在右侧。
Java容器的一个重要特性:容器中存放的是java对象的引用。
Java容器的缺点是,一旦将对象置于容器内,你便损失了他们的型别信息。由于型别信息已失,所以容器惟一知道的事情就是,它所持有的乃是指向对象的一些references,使用之前你必须将元素转卫正确型别,如果将元素从容器中取出并将其转换为不正确的型别,将会得到执行期错误。
List会以元素安插次序来放置元素,不会重新排列;Set,Map则都有自己的内部排列机制。
hash code是一种“将对象内的某些信息转换为几乎独一无二”的int,用以代表这个对象;所有java对象都可以产生hash code,而且hashcCode()是根源于Object所具备的函数。HashMap会运用对象的hashCode(),并利用它来快速查找到key。
Object的hashCode()会被用来产生每个对象的hash code,而且缺省的情况下它直接使用其对象的内存地址;同样的,缺省的Object.equals()只会比较对象的内存地址。因此,当在HashMap中使用自己编写的classes作为key,一定要同时覆写hashCode()和equals()
相关文章推荐
- Java编程思想学习笔记_4(异常机制,容器)
- 《Java编程思想_ 深入理解java虚拟机_Thinking in java__Effiect java__设计模式》学习笔记7——泛型编程基础
- JAVA编程思想(第四版)学习笔记----11.4 容器的打印
- 面向对象--java学习(java编程思想)笔记
- Java框架spring 学习笔记(一):SpringBean、ApplicationContext 容器、BeanFactory容器
- java学习——java面试【事务、锁、多线程】资料整理
- java学习笔记知识点整理02
- 【java编程思想--学习笔记(三)】访问控制-接口实现与类的访问权限
- Java编程思想学习笔记六:访问权限控制
- Java网上学习资料
- Java编程思想(2nd)学习笔记(8)-2
- JAVA学习笔记整理三(抽象类、接口、匿名类)
- Java编程思想学习(十二) 数组和容器
- JAVA编程思想学习笔记十一:持有对象
- java编程思想学习笔记(6)--手动创建、编译、运行Java程序
- java编程思想学习笔记--第二章 一切都是对象
- Java 编程思想(第四版)学习笔记(7)复用类
- JAVA编程思想学习笔记
- 《Java 编程思想》 学习笔记2
- java编程思想学习笔记 泛化的class引用