Java学习笔记——泛型与集合

在这里插入图片描述

泛型

Java中参数化类型。以集合为例,集合可以使用泛型限制被添加元素的数据类型,若将不符合指定数据类型的元素添加到集合类,编译器会报错。

定义泛型类.
语法:class 类名
其中,T代表被传入参数的数据类型。
注意:在定义泛型类时,一般类型名称使用T来表达,而容器元素使用E来表达。

泛型的用法.
1) 定义泛型类时声明多个类型
在定义泛型类时可以声明多个类型。
语法:class MutiOverClass<T1,T2>
其中,MutiOverClass为泛型类名称,T1和T2代表被传入参数的类型
例:
MutiOverClass<Boolean,Float> mutiOC= newMutiOverClass<Boolean,Float>(true,2.88f); .

2) 定义泛型类时声明数组类型
定义泛型类时也可以声明数组类型

3) 集合类声明元素类型
在集合中使用泛型可以保证集合中元素类型的唯一性,从而提高代码的安全性和可维护性。

集合类概述

Java中的集合类似于一个装有多个对象的容器,但是又有区别于数组。主要表现在:

1) 数组的长度是固定的,集合的长度是可变的.

2) 数组既可以存放基本数据类型,又可以存放对象,集合只能存放对象.

List集合、Set集合和Map集合的继承关系

在这里插入图片描述

Collection的常用方法
在这里插入图片描述

List集合

List集合包括List接口以及List接口的所有实现类。List集合中的元素允许重复,且各元素的顺序就是添加元素的顺序。类似于Java数组,用户可以通过索引访问集合中的元素。

** List接口**
List接口继承了Collection接口,因此可以使用Collection接口中的所有方法。此外,List接口还定义了两个重要的方法:在这里插入图片描述

List接口的实现类

List接口不能直接被实例化,所有Java提供了List接口实现类。其中,常用的实现类是ArrayList类与LinkedList类。
ArrayList类:以数组的形式保存集合中的元素,能够根据索引位置随机且快速的访问集合中的元素
LinkedList:以链表结构保存集合中的元素,随机访问集合中的元素性能较差,但是向集合中插入元素和删除元素的性能是相当出色的。

实例化List的关键代码
List list =new ArrayList<>();
List list2= new LinkedList<>();
其中,E代表元素类型,如:若集合中元素均为字符串类型,那么E为String类型
在这里插入图片描述

Iterator接口
Java提供了Iterator接口,专门对集合进行迭代的迭代器。
常用方法
在这里插入图片描述

创建迭代器
Iterator iter = list.iterator();

Set集合
Set集合由Set接口和Set接口的实现类组成。Set集合中的元素不按特定的方式排序,只是简单地被存放在集合中,但Set集合中的元素不能重复。

Set接口
Set接口继承了Collection接口,因此可以使用Collection接口的全部方法。但是,Set接口中的元素不能重复,因此,在向Set集合中添加元素时,需要先判断新增元素是否已经存在于集合中,再确定是否执行添加操作。

Set接口实现类
Set接口常用的实现类HashSet类与TreeSet类,具体如下:
HashSet:是Set接口的一个实现类,它不允许有重复元素
TreeSet:不仅实现Set接口,还实现java.util.SortedSet接口,因此在遍历使用TreeSet类实现的Set集合中的元素时,会默认地将元素按升序排列。在创建TreeSet对象时,通过使用Comparator接口,还可以实现定制排序,如降序排列。

TreeSet类新增方法
在这里插入图片描述

Map集合
Map集合提供了存储具有映射关系的存储方法。Map集合由Map接口和Map接口实现类组成。

Map接口
Map接口提供了key到valued的映射关系。Map关系中不能包含相同的key,并且每个key只能映射一个value。

Map接口常用的方法
在这里插入图片描述

发布了62 篇原创文章 · 获赞 42 · 访问量 3323

猜你喜欢

转载自blog.csdn.net/weixin_45375866/article/details/100572995