一.集合
集合是指集中存放一组对象的对象,相当于一个容器。
1.基本操作
· boolean add ( E e ):向集合中添加元素 e 。
· boolean remove ( Object o ):从集合中删除指定的元素 o 。
· boolean contains ( Object o ):返回集合中是否包含指定的元素 o 。· boolean isEmpty ():返回集合是否为空,即不包含元素。
· int size ():返回集合中包含的元素个数。
· Iterator iterator ():返回包含所有元素的迭代器对象。
· default void forEach ( Consumer <? super T > action ):从父接口继承的方法,在集每个元素上执行指定的操作。
2.批量操作
boolean addAll ( Collection <? extends E > c ):将集合 c 中的所有元素添加到当前集合中。
· boolean removeAll ( Collection <?> c ):从当前集合中删除 c 中的所有元素。
· default boolean removelf ( Predicate <? super E > filter ):从当前集合中删除满足谓词的所有元素。
· boolean containsAll ( Collection <?> c ):返回当前集合是否包含 c 中的所有元素。· boolean retainAll ( Collection <?> c ):在当前集合中只保留指定集合 c 中的元素,其他元素删除。
· void clear ():将集合清空。
3.数组操作
·<T> T [] toArray ( T [] a ):返回包含集合中所有元素的数组,返回数组的元素类型是指数组的长度与集合 c 中的元素个数相同。
· Object [] toArray ():返回包含集合中所有元素的对象数组。
4.流操作方法
· public default Stream < E > stream ():以当前集合作为源返回一个顺序 Stream 对象。· public default Stream < E > paralellStream ():以当前集合作为源返回一个并行 Stream 对象。
二.泛型
简单地说,泛型( generics )是带一个或多个类型参数( type parameter )的类或接口
package com . demo ;
public class Node < T >{
private T value ;//泛型成员
public Node (){}//默认构造方法
public Node ( T value )(//默认构造方法
this . value = value ;
}
//访问方法定义
public T get (){
return value ;
}
public void set ( T value ){
this . value = value ;
}
//修改方法定义
//显示类型名
public void showType ()(
System . out . println (" T 的类型是:"+ value . getClass (). getName ());
}}
按照约定,类型参数名使用单个大写字母表示。常用的类型参数名有 E (表示元素) K (表示键)、 N (表示数字)、 T (表示类型)、 V (表示值)等。
注意,泛型可能具有多个类型参数,但在类或接口的声明中,每个参数名必须是的。下面的 Entry 是泛型接口,带两个类型参数。
泛型方法( generic method )是带类型参数的方法。类的成员方法和构造方法都可以定义为泛型方法。泛型方法的定义与泛型类型的定义类似,但类型参数的作用域仅限于声明的方法和构造方法内。泛型方法可以定义为静态的和非静态的。
public static void printList ( List <?> list ){
for ( Object element : list ){
System . out . println ( element );
}}这里,问号(?)就是通配符,表示该方法可接受的元素是任何类型的 List 对象。
三.遍历集合元素
1.使用简单的 for 循环
for ( int i =0; i < bigCities . size (); i ++)(
使用简单的 for 循环可以遍历集合中的每个元素。
例如,
System . out . print ( bigcities . get ( i )+"");
2.使用增强的 for 循环
使用增强的 for 循环不但可以遍历数组的每个元素,还可以遍历集合 的每个元素。
下面的代码打印集合的每个元素:
for ( String city : bigCities )
System . out . println ( city );
3、使用迭代器
迭代器是一个可以遍历集合中每个元素的对象。调用集合对象的 iterator ()方法可以得 lterator 对象,再调用 Iterator 对象的方法就可以遍历集合中的每个元素, Iterator 接口定
欠了如下3个方法。
· boolean hasNext ():返回迭代器中是否还有对象。·
Enext ():返回迭代器中下一个对象。
· void remove ():删除迭代器中的当前对象。
Iterator 使用一个内部指针,开始指向第一个元素的前面。如果在指针的后面还有元素 hasNext ()方法返回 true 。调用 next ()方法,指针将移到下一个元素,并返回该元素。 remove 方法将删除指针所指的元素。
双向迭代器
boolean hasNext ():返回是否还有下一个元素。· Enext ():返回下一个元素。
· boolean hasPrevious ():返回是否还有前一个元素。· E previous ():返回前一个元素。
· int nextlndex ():返回下一个元素的索引。· int previouslndex ():返回前一个元素的索引。· void remove ():删除当前元素。
· void set ( E o ):修改当前元素。
* void add ( E o ):在当前位置插入一个元素。