集合框架和泛型

目录

程序场景

分析1:

分析2:

分析3:

 Java集合框架包含的内容

Collection接口

List接口

List接口的常用方法(不是所有的方法)

LinkedList集合类

LinkedList的特殊方法

ArrayList与LinkedList对比

Set接口

Map接口

Map接口的常用方法(不是所有的方法)

遍历HashMap的键集和值集

泛型

泛型集合

Collections算法类

Collections算法类

Collections排序

课堂知识


程序场景

分析1:

分析以上问题,发现数组在存储对象数据时存在一些明显的缺陷:
1:数组长度固定不变,不能很好地适应元素数量动态变化的情况。
2:通过数组名.length获取数组的长度,却无法直接获取数组中实际存储的元素个数。
3:数组采用在内存中分配连续空间的方式存储,根据元素信息查找时效率比较低,需要多次比较。



分析2:

针对数组的缺陷,Java提供了比数组更灵活、更实用的集合框架,可大大提高软件的开发效率,并且不同的集合可适用于不同的应用场合。



分析3:

如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java的集合框架

 Java集合框架包含的内容

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


Collection接口

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

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

 

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

List接口

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

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

List接口的常用方法(不是所有的方法)

LinkedList集合类

LinkedList的特殊方法

ArrayList与LinkedList对比

Set接口

  •  Set 接口存储一组唯一,无序的对象
  • Set 接口常用的实现类:HashSet
  • HashSet 集合的特点集合内的元素是无序排列且不允许重复。
    HashSet集合的查找效率高。
    允许集合元素值为null.

 

 

Map接口

  • Map接口存储一组键值对象,提供key到value的映射
  • Map接口常用的实现类HashMap
  • HashMap类的特点
  • 不保证映射的顺序,特别是不保证顺序恒久不变
  • 数据添加到HashMap集合后,所有数据的数据类型将转换为Object类型,所以从其中获取数据时需要进行强制类型转换。

Map接口的常用方法(不是所有的方法)

遍历HashMap的键集和值集

  • 如何遍历HashMap的键集和值集?
  • 方法1:增强型for循环
  • 方法2:通过迭代器Iterator实现遍历
  • 方法3:遍历值集

泛型

  • 泛型是JDK1.5的新特性。
  • 泛型的本质是参数化类型:将所操作的数据类型指定为一个参数,使代码可以应用于多种类型。
  • 泛型的定义:将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。
  • 泛型的优点
  • 所有强制转换都是自动和隐式进行的,安全简单。
  • 提高了代码的重用率

泛型集合

  • DK1.5中使用泛型改写了集合框架中的所有接口和类,也就是泛型集合
  • 典型的泛型集合ArrayList<E>、HashMap<K,V>
  • <E>、<K,V>表示该泛型集合中的元素类型
  • 泛型集合中的数据不再转换为Object
  • 前面讲到的LinkedList、HashSet等也有自己的泛型形式。
  • 泛型集合的优点
  • 存储数据时进行严格类型审查,确保只有合适类型的对象才能存储在集合中。
  • 从集合中检索对象时,减少了强制类型转换。

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

Collections算法类

Collections类是Java提供的一个集合操作工具类。
Collections类定义了一系列用于操作集合的静态方法,用于实现对集合元素的排序、查找和替换等操作。
Collections和Collection是不同的,前者是集合的操作类,后者是集合接口

 


Collections算法类

Collections的常用方法(不是所有的方法)
sort():排序
binarySearch():查找
max()\min():查找最大\最小值


Collections排序

实现一个类的对象之间比较大小,该类要实现Comparable<T>接口
重写 public int compareTo(T o)方法。
如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

课堂知识

ArrayList默认长度为10

size方法调取的是集合中的元素个数

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值