Collection、泛型

我是研究僧i 提交于 2019-12-03 11:48:34

集合与数组的区别

区别:

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

2.数组中储存的都是同一类型的元素,可以储存基本数据类型(引用数据类型).集合存储的都是对象.而且对象类型可以不一致,在开发中一般当对象多的时候,使用集合进行存储.

Collection集合的常用功能

什么是Collection集合?

Collection集合是 单类集合的根接口,用于存储一系列符合某种规则的元素它有两个重要的子接口,分别是

java.util.List 和 java.util.Set 。其中, List 的特点是元素有序、元素可重复.Set 的特点是元素无

序,而且不可重复。 List 接口的主要实现类有 java.util.ArrayList 和 java.util.LinkedList , Set 接口的主要实现类有 java.util.HashSet 和 java.util.TreeSet

Collection常用功能:

public boolean add(E e) :把对象添加到当前集合中.

public void clear (): 清空当前集合

public boolean remove(): 把给定的对象在当前集合中删除

public boolean contains(E e): 判断当前集合中是否有该元素.

public boolean isEmpty(): 判断集合是否为空.

public int size() : 返回集合中元素个数.

public Object[] toArray(): 把集合中的元素,储存到数组中.

使用迭代器对集合进行取元素

什么是迭代器?

在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口

java.util.Iterator 。 Iterator 接口也是Java集合中的一员,但它与 Collection 、 Map 接口有所不同,

Collection 接口与 Map 接口主要用于存储元素,而 Iterator 主要用于迭代访问(即遍历)Collection 中的元素,因此 Iterator 对象也被称为迭代器。

获取迭代器方法:

public Iterator iterator():获取集合对应的迭代器,来遍历元素

迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

Iterator接口常用方法:

public E next():返回迭代的下一元素.

public boolean hasNext():如果仍有元素可以迭代,返回true.

 

使用集合存储自定义类型

Arraylist<Person>......

使用foreach循环遍历集合

什么是 foreach循环

foreach循环也叫增强for循环,是JDK1.5之后出现的新特性,专门用来遍历数组和Iterable接口实例(包括例如集合),它的内部原理其实是Iterator迭代器,所以不能对元素进行增删操作.

支持数组

支持java.lang.Iterable接口实例(包括例如集合)

for(元素的数据类型 变量 : Collection集合or数组){

//写操作代码

}

使用泛型定义集合对象

泛型的三种用法:

1. 泛型类

格式:修饰符 class 类名称<泛型> {...}

2. 泛型接口

格式:修饰符 interface 接口名称<泛型> {...}

3. 泛型方法

格式:修饰符 <泛型> 返回值类型 方法名称(参数类型 参数名称, ...) {...}

什么是泛型?

泛型:可以在类或方法中预支地使用未知的类型。

泛型的好处:

将运行时期的ClassCastException,转移到了编译时期变成了编译失败。

避免了类型强转的麻烦。

例子:ArrayList<String> list = new ArrayList<String>();

 

泛型上下限

泛型通配符:

<?>

泛型的上下限实际就是指定泛型的一个上限或者下限.

泛型的上限:

格式: 类型名称 <? extends 类 > 对象名称

意义: 只能接收该类型及其子类

泛型的下限:

格式: 类型名称 <? super 类 > 对象名称

意义: 只能接收该类型及其父类型

阐述泛型通配符的作用

当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用.

泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。

Collections工具类

public static void shuffle(List<?> list):随机排列,打乱顺序。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!