NO.25 集合操作

昨天简单介绍了集合Collection和其的一些基本方法,还有一些集合其他的通用方法。

1)addAll、containsAll和removeAll方法:

NO.25 集合操作_第1张图片

2)Iterator 迭代器:

Collection提供了用于遍历集合元素的方法: Iteartor iterator()。该方法会返回一个可以用于遍历当前集合的迭代器。

java.util.Iterator----迭代器,本身是一个接口,规定了所有迭代器遍历集合的统一方法。不同的集合实现类都提供了一个迭代器的实现类用于遍历自身。我们无需关注具体迭代器的名字,只要将它看做是Iterator使用即可。 

使用迭代器遍历集合遵循:问,取,删的步骤,其中删除元素操作不是必须的。

hasNext方法、next方法和remove方法:

NO.25 集合操作_第2张图片

3)增强for循环:java1.5之后推出了一个新的特性,增强for循环,也称为新循环。该循环不通用于传统循环的工作,其只用于便利集合或数组。

底层语法均未变,只是编译器会对我们的代码进行修改。

NO.25 集合操作_第3张图片
数组的增强for循环
NO.25 集合操作_第4张图片
集合的增强for循环

泛型机制:

泛型是Java SE 1.5引入的特性,泛型的本质是参数化类型。在类、接口和方法的定义过程中,所操作的数据类型被传入的参数指定。

Java泛型机制广泛的应用在集合框架中。所有的集合类型都带有泛型参数,这样在创建集合时可以指定放入集合中的对象类型。Java编译器可以据此进行类型检查,这样可以减少代码在运行时出现错误的可能性。


线性表集合操作:

List接口是Collection的子接口,用于定义线性表数据结构;可以将List理解为存放对象的数组,只不过其元素个数可以动态的增加或减少,并且List是可重复集。

List接口的两个常见实现类为ArrayList和LinkedList,分别用动态数组和链表的方式实现了List接口。

可以认为ArrayList和LinkedList的方法在逻辑上完全一样,只是在性能上有一定的差别,ArrayList更适合于随机访问而LinkedList更适合于插入和删除;在性能要求不是特别苛刻的情形下可以忽略这个差别。

1)get与set方法:

NO.25 集合操作_第5张图片

2)插入和删除:

NO.25 集合操作_第6张图片

3)subList方法:用于获取子List。

NO.25 集合操作_第7张图片

4)List转换为数组:

NO.25 集合操作_第8张图片
List->Array

数组转换为List:只能转换为List集合。

NO.25 集合操作_第9张图片
Array->List

5)Collections.sort方法实现排序:其作用是对集合元素进行自然排序(按照元素的由小至大的顺序)。

若想对某个集合的元素进行自然排序,该集合的元素有一个要求,就是这些元素必须是Comparable的子类。

NO.25 集合操作_第10张图片
Integer中实现了Comparable接口

定义一个类为测试排序:

NO.25 集合操作_第11张图片
实现了Comparable接口----离原点距离大小比较

排序测试:

NO.25 集合操作_第12张图片

另一种排序重载方法:

NO.25 集合操作_第13张图片
自定义比较字符串长度

你可能感兴趣的:(NO.25 集合操作)