java学习笔记17_集合、泛型、通配符

学习内容

集合

Iterator

迭代器,是集合的专用遍历方式

常用方法
next()

返回迭代器的下一个元素。

hasNext()

如果集合中有更多元素,则返回true

使用迭代器遍历

如图,可以实现遍历打印的效果。

Iterator it =new Iterator();
while(it.hasNext()){
   
  System.out.println(it.next());
}

Collection 集合

  • Collection 集合是单例集合的顶层接口,它表示一组对象,这些对象也称为 Collection 的元素。
  • JDK 不提供此接口的任何直接实现,提供更具体的子接口实现,例如 SetList
常用方法
方法名 说明
add(E e) 添加元素
remove(Object o) 从集合中移除指定的元素
clear() 清空集合中的元素
boolean contains(Object o) 判断集合是否存在指定函数
boolean isEmpty() 判断集合是否为空
int size 返回集合的长度,也就是集合中元素的个数iter
iterator() 返回此集合的迭代器,返回类型为 Iterator

List 集合

List 集合,也称有序集合,也称序列。

在 List 集合中:

可以精确控制列表中的插入位置;

可以通过索引访问元素;

可以搜索列表中的元素;

允许重复的元素。

方法
add(int index, E element) 在指定位置中插入元素
get(int index) 返回指定索引位置的元素。
set(index, E element) 修改指定所引处的元素,返回被修改的元素
remove(int index) 移除指定位置的元素

Set 集合

特点:

Set 集合是 Collection 的子类。其特点为:

  • 不包含重复元素
  • 没有带索引的方法,因此不能使用普通的 for 循环遍历
  • 是一个接口,不能直接实现。
HashSet

该类可以实现 Set 接口,对集合的迭代顺序不作任何保证。

Map 集合

概述
  • 是一个接口,不能实例化

  • Map 集合的泛型由2部分组成,K 和 V。 Map< K ,V > 。例如:MAP< int ,String >

    ​ K 是键的类型。 V 是值的类型。

  • Map 集合将键映射到值的对象。

  • 不能包含重复的键

  • 每个键可以映射最多一个值

  • 实现类: HashMap

常用方法
方法名 说明
V put(K key, V value) 添加元素,将指定的值与该映射中制定的键相关联。
V remove(Object key) 根据键删除对应元素
void clea() 移除所有键值对元素
boolean containsKey(Object Key) 判断集合是否包含制定的键
boolean containsKey(Object Key) 判断集合是否包含制定的值
boolean isEmpty() 判断集合是否为空
int size() 返回集合长度,即键值对的个数
V get(Object key) 根据键获取值。如果该键不存在于 Map 中,则返回 null
Set <K> keySet() 获取所有键的集合
Collection <V> values() 获取所有值的集合
Set<Map.Entry<K,V>>entrySet() 获取所有键值对对象的集合

Collections 类

此类仅由静态方法组合或返回集合。包含对集合进行操作的多态算法。

常用方法
//将指定的列表升序排列
public static <T extends Compareable<?super T>> void sort(List<T> list);

//反转指定列表中的元素
public static void reverse(List<?> list);

//使用默认的随机源随机排列指定列表
public static void shuffle(List<?> list)

Collector

Collector 包含5个参数,传入参数不同,其行为不同。

public interface Collector<T, A, R> {
   
    // supplier参数用于生成结果容器,容器类型为A
    Supplier<A> supplier();
  
    // accumulator用于消费元素,也就是归纳元素,这里的T就是元素,它会将流中的元素一个一个与结果容器A发生操作
    BiConsumer<A, T> accumulator();
  
    // combiner用于两个两个合并并行执行的线程的执行结果,将其合并为一个最终结果A
    BinaryOperator<A> combiner();
  
    // finisher用于将之前整合完的结果R转换成为A
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值