集合与泛型总结

本文介绍了Java中的集合基本操作,包括添加、删除、检查元素以及遍历方法。此外,讨论了泛型的概念,展示了如何在类中使用泛型以及泛型方法。还提到了不同方式遍历集合元素,如for循环、增强for循环和迭代器,并介绍了双向迭代器的功能。
摘要由CSDN通过智能技术生成

一.集合

集合是指集中存放一组对象的对象,相当于一个容器。

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 ):在当前位置插入一个元素。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值