- 2
- 0
- 约2.29千字
- 约 16页
- 2019-07-17 发布于辽宁
- 举报
Java Java程序设计基础 第八章 集合和泛型 8.2 泛型 8.1 集合类 8.1 集合类 集合是一种数据结构,可以包含其他对象的引用。集合接口声明的是可以对每种集合类型所执行的各种方法,集合的实现类以特殊的方式执行这些方法。 Java集合框架分为两类,以Collection为接口的元素集合类型,以Map为接口的映射集合类型。 Collection类型又分为两大类Set和List,Collection接口包含大量方法用于添加、删除、比较集合中的元素,Collection也可以转换成数组。他们都属于java.util包。 8.1 集合类(续) Set集合的特征:就是元素无重复且是无序,所以Set接口以及实现类没有按下标进行添加、删除、访问的方法。 Set的实现类有HashSet、TreeSet以及子类LinkedHashSet,这三个类是非线程安全的。TreeSet是基于树结构的集合,LinkedHashSet具备按照插入先后顺序访问的功能,HashSet访问元素的顺序是不确定的,TreeSet的访问顺序是按照树接口的顺序访问。 8.1 集合类(续) Map的实现类有HashMap、IdentityHashMap、WeakHashMap、TreeMap,以及LinkedHashMap子类,这些类都是非线程安全的,WeakHashMap是一种改进的HashMap,如果一个key不再被外部所引用,那么该key可以被GC回收。HashTable是线程安全的,HashTable不能插入null空元素。 8.1 集合类(续) 迭代器Iterator定义了对集合的通用访问方法,Iterator接口有三种基本方法:E next( ),boolean hasNext( ),void remove( ),代码结构如下: Iterator iter = clt.iterator( ); while (iter.hasNext( )) { Object obj = iter.next( ); //对obj进行操作 } 8.1 集合类(续) List接口是一种能包含重复元素的有序集合,与数组一样,List的第1个元素的序号也是0。除了从Collection中继承的方法外,List还提供了一些方法,用于操作所包含的元素。 List的实现类有ArrayList、LinkedList,这两个都是非线程安全的,Vector是线程安全的List实现类,Stack是Vector的子类。 8.1 集合类(续) 在ArrayList的前面或中间插入数据时,必须将其后的所有数据相应的后移,花费较多时间,所以,当程序添加元素主要是在后面,并且需要随机地访问其中的元素时,优先使用ArrayList会得到比较好的性能。 访问LinkedList中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,但在添加元素到原有元素中间时效率很高,所以,当程序需要经常在指定位置添加元素,并且按照顺序访问其中的元素时,优先使用LinkedList。 8.1 集合类(续) Set接口是一种无重复元素的集合。集合框架中包含多种Set实现类,主要为HashSet、TreeSet、SortedSet及LinkedHashSet。就常用方法而言,Set接口与Collection接口基本一致。 HashSet类是将元素存储在散列表中,适合用于不需要有序的元素序列,并能实现快速查找特定元素。如果想要提高HashSet的性能,可以指定HashSet中元素的个数;如果大约知道HashSet中最终会插入多少元素,可以把元素个数设置为其值的1.5倍;如果元素过多,将导致HashSet检索性能下降。 8.1 集合类(续) TreeSet将元素存储在树中,但元素按有序方式存储,可以按任何次序向TreeSet中添加元素,但遍历TreeSet时,元素出现的序列是有序的。在TreeSet中插入元素的效率要低于在HashSet中插入元素,但比把元素插入到数组或链表的合适位置要快。 SortedSet接口用于按照排好顺序元素的集合,排序方式可以是元素的自然顺序(如数字按升序排列),也可以是由Comparator指定的顺序 8.1 集合类(续) 集合是一种可以快速找到已存在元素的数据结构,但通常进行元素查找时,是通过某些关键信息来查找与之相关的对象,映射类是解决此类问题的数据结构之一。映射类储存的数据是“键/值”对,将“键”与“值”关联起来,给出键就可以查找到与之相关的值。 8.2 泛型 泛型是在Java 1.5中引入的新特性,在此之前,Java通过对类型Object的引用来实现参数类型的“任意化”,特点则是需要进行显式地强制类型转换,但编译器无法发现强制类
您可能关注的文档
- Java EE企业级应用开发第1章 初识Spring的基本应用.ppt
- Java EE企业级应用开发第2章 Spring中的Bean.ppt
- Java EE企业级应用开发第3章 Spring AOP.ppt
- Java EE企业级应用开发第4章 Spring的数据库开发.ppt
- Java EE企业级应用开发第5章 Spring的事务管理.ppt
- Java EE企业级应用开发第6章 初识MyBatis.ppt
- Java EE企业级应用开发第7章 MyBatis的核心配置.ppt
- Java EE企业级应用开发第8章 动态SQL.ppt
- Java EE企业级应用开发第9章 MyBatis的关联映射.ppt
- Java EE企业级应用开发第13章 数据绑定.ppt
原创力文档

文档评论(0)