NO.25 集合操作
昨天简单介绍了集合Collection和其的一些基本方法,还有一些集合其他的通用方法。
1)addAll、containsAll和removeAll方法:
2)Iterator 迭代器:
Collection提供了用于遍历集合元素的方法: Iteartor iterator()。该方法会返回一个可以用于遍历当前集合的迭代器。
java.util.Iterator----迭代器,本身是一个接口,规定了所有迭代器遍历集合的统一方法。不同的集合实现类都提供了一个迭代器的实现类用于遍历自身。我们无需关注具体迭代器的名字,只要将它看做是Iterator使用即可。
使用迭代器遍历集合遵循:问,取,删的步骤,其中删除元素操作不是必须的。
hasNext方法、next方法和remove方法:
3)增强for循环:java1.5之后推出了一个新的特性,增强for循环,也称为新循环。该循环不通用于传统循环的工作,其只用于便利集合或数组。
底层语法均未变,只是编译器会对我们的代码进行修改。
数组的增强for循环 集合的增强for循环泛型机制:
泛型是Java SE 1.5引入的特性,泛型的本质是参数化类型。在类、接口和方法的定义过程中,所操作的数据类型被传入的参数指定。
Java泛型机制广泛的应用在集合框架中。所有的集合类型都带有泛型参数,这样在创建集合时可以指定放入集合中的对象类型。Java编译器可以据此进行类型检查,这样可以减少代码在运行时出现错误的可能性。
线性表集合操作:
List接口是Collection的子接口,用于定义线性表数据结构;可以将List理解为存放对象的数组,只不过其元素个数可以动态的增加或减少,并且List是可重复集。
List接口的两个常见实现类为ArrayList和LinkedList,分别用动态数组和链表的方式实现了List接口。
可以认为ArrayList和LinkedList的方法在逻辑上完全一样,只是在性能上有一定的差别,ArrayList更适合于随机访问而LinkedList更适合于插入和删除;在性能要求不是特别苛刻的情形下可以忽略这个差别。
1)get与set方法:
2)插入和删除:
3)subList方法:用于获取子List。
4)List转换为数组:
List->Array数组转换为List:只能转换为List集合。
Array->List5)Collections.sort方法实现排序:其作用是对集合元素进行自然排序(按照元素的由小至大的顺序)。
若想对某个集合的元素进行自然排序,该集合的元素有一个要求,就是这些元素必须是Comparable的子类。
Integer中实现了Comparable接口定义一个类为测试排序:
实现了Comparable接口----离原点距离大小比较排序测试:
另一种排序重载方法:
自定义比较字符串长度