集合框架和泛型

第一章 集合框架和泛型

集合框架包含的内容

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

在这里插入图片描述

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

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

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

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

list接口的实现类

Arraylist

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

常用方法

在这里插入图片描述

Collection接口常用通用方法还有:clear()、isEmpty()、iterator()、toArray()

LinkedList

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

在这里插入图片描述

set接口

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

HashSet是Set接口常用的实现类

Set中存放对象的引用

Set set=new HashSet();
String s1=new String("java");
String s2=s1;
String s3=new String("JAVA");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());

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

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

set接口不存在get方法

迭代器Iterator

u如何遍历Set集合呢?

方法1:通过迭代器Iterator实现遍历

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

nIterator的方法:

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

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

方法2:增强型for循环

map接口

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

最常用的实现类是HashMap

在这里插入图片描述

遍历Map集合

通过迭代器Iterator实现遍历

增强型for循环

键值对

泛型集合

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

本质是参数化类型

//创建学员集合
ArrayList<Student> students = new ArrayList<Student>();
//创建学员类对象
Student student = new Student();
//创建诗类对象
Poem poem = new Poem();
//将两个对象添加到list集合中
students.add(student);
students.add(poem);//由于创建时已指定student类型,所以这里会报错

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

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

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

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

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

Collections算法类

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

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

常用方法

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

Collections提供的常用静态方法

sort():排序

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

Collections排序

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

实现一个类的对象之间比较大小,该类要实现Comparable接口重写compareTo()方法


compareTo()方法

return 1 交换位置

s排序**

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

实现一个类的对象之间比较大小,该类要实现Comparable接口重写compareTo()方法


compareTo()方法

return 1 交换位置

return 0 -1 不交换位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值