Day19、集合框架和泛型

1、Java集合框架包含的内容

1.1、Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。

1.2

1)Collection 接口存储一组 不唯一,无序的对象

2)List 接口存储一组不唯一,有序(插入顺序)的对象

3)Set 接口存储一组唯一,无序的对象

4)Map接口存储一组键值对象,提供key到value的映射

2、List接口的实现类

2.1、ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高

2.2、LinkedList采用链表存储方式,插入、删除元素时效率比较高

2.3、存储方式

1)ArrayList类是List接口的一个具体实现类

2)ArrayList对象实现了可变大小的数组

3)随机访问和遍历元素时,它提供更好的性能

2.4、ArrayList常用方法

 

 2.5、LinkedList集合类

1)存储方式

a、LinkedList类是List接口的一个具体实现类

b、LinkedList 类用于创建链表数据结构

c、插入或者删除元素时,它提供更好的性能

2)LinkedList常用方法

 

3、Set接口

3.1

1)Set接口存储一组唯一,无序的对象

2)HashSet是Set接口常用的实现类

3) Set中存放对象的引用

3.2、Set接口如何判断加入对象是否已经存在呢

采用对象的equals()方法比较两个对象是否相等

3.3、HashSet是Set接口常用的实现类

3.4、Set接口不存在get()方法

4、迭代器Iterator

4.1、如何遍历Set集合呢?

1)通过迭代器Iterator实现遍历

a、获取Iterator :Collection 接口的iterator()方法

b、Iterator的方法

          boolean hasNext(): 判断是否存在另一个可访问的元素

           Object next(): 返回要访问的下一个元素

2)增强型for循环

5、Map接口

5.1、Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作

        最常用的实现类是HashMap

5.2、Map接口常用方法

 

5.3、 遍历Map集合

1)通过迭代器Iterator实现遍历

2)增强型for循环

3)键值对

6、泛型集合

6.1、如何解决以下强制类型转换时容易出现的异常问题

1)List的get(int index)方法获取元素

2)Map的get(Object key)方法获取元素

3)Iterator的next()方法获取元素

通过泛型

        JDK5.0使用泛型改写了集合框架中的所有接口和类

6.2、什么是泛型

        将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性

                本质是参数化类型

6.3、泛型集合

1)泛型集合可以约束集合内的元素类型

2)典型泛型集合ArrayList<E>、HashMap<K,V>

a、<E>、<K,V>表示该泛型集合中的元素类型

b、泛型集合中的数据不再转换为Object

3)除了指定了集合中的元素类型外,泛型集合和之前学习的集合的用法完全一样

7、Collections算法类

7.1、定义

        Java集合框架将针对不同数据结构算法的实现都保存在工具类中

        Collections类定义了一系列用于操作集合的静态方法

7.2、Collections类常用方法

1)Collections和Collection不同,前者是集合的操作类,后者是集合接口

2)Collections提供的常用静态方法

a、sort():排序

b、binarySearch():查找

c、max()\min():查找最大\最小值

7.3、Collections排序

1)Collections类可以对集合进行排序、查找和替换操作

2)实现一个类的对象之间比较大小,该类要实现Comparable接口

         重写compareTo()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值