《俗人笔记》之《集合篇下》

11 篇文章 0 订阅
8 篇文章 0 订阅

Map

键值对形式,两个类型可以不一样
-put(k,v)不存在就直接添加,否则更新替换,并返回替换前的值
-remove(k)移除指定键的值,不存在返回null,存在就返回被移除的值
-get(k)
-keySet()获得key的set集合
-entrySet()获得键值对形式的set集合Set<Map.Entry<k,v>> Entry是为了方便同时获取k,v
-containsKey()是否包含某个键
-getOrDefault(k,0)k存在则返回对应值,否则返回默认值

Hashmap

底层是hash表结构,为了保证键的唯一,重写hashcode和equals,尤其是自定义值最为key
为什么重写:因为object中的equals比较的是地址,equals为true,则hashcode必须为true,反之一样

Linkedhashmap

Hash表加链表,hash保证键的唯一,而链表保证有序

Treemap

底层是红黑树,无序,但key是必须按照默认按照自然排序或自定义排序一种
自然排序:元素自身具备比较性,对象实现Compareable接口,覆盖其CompareTo方法
自定义:不具备或者不是想要的,实现comparator接口,复写compare方法

Of集合

Jdk9新特性
List list = List.of(1, 2, 3, 4, 5, 6, 7);
Map<Integer, String> map = Map.of(1, “张三”, 2, “李四”, 3, “王五”);
迭代器Iterator
用于遍历单列集合collection,且不能进行修改操作
-next()返回下一个元素
-hasNext()是否有下个元素
在这里插入图片描述

增强for

底层就是iterator,每个遍历的值都是集合对象的复制,所以修改没用,但会对象类型有用,基本类型没用

泛型

一种类型规范,统一存储,集合定泛型只是为了便于统一管理;
一种安全机制,将运行时的异常提前到编译时,而且java中的泛型时伪泛型,只存在于编译,运行时就被消除
不具备继承关系
泛型类
class ArrayList {//里面的方法随着类的的泛型而动,比较灵活
public boolean add(Integer e) { }
public Integer get(Integer index) { }

}
泛型方法
public void show(MVP mvp) {//方法参数通用,就在返回之类型前加此类型
System.out.println(mvp.getClass());
}
泛型接口
类实现接口,可以指定泛型,如果不指定,那么这个类就是泛型类
interface Ai{
// public abstract
void show(W w);
}
class Bi implements Ai{
@Override
public void show(String s) {
}
}
class Ci implements Ai{
@Override
public void show(W w) {
}
受限泛型
上限<? Extends 类>该类或子类
下限<? Super 类>该类或父类

可变参数

Jdk1.5之后,方法可以就收多个类型一致的数据,也可以直接传入一个数组,其实就是一数组接收的,如果和其它类型数据在一起,就必须放在后面
public int getMax(int… items)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值