Java集合

概述

集合,对于我个人可以理解为封装好的数据结构,直接拿来用即可,java提供了各种方法(函数),看似繁多的操作,其实要知道,这些方法越多,就意味着程序员这边要做的事情就越少。
终于不用像在C语言那边一样,啥都要自己手写了。

在这里插入图片描述Set就是扔到一起就完事了,决不可重复(高一数学里面的集合就是这个性质);
List完全可以用数组理解,索引就是下标;
Map就是一一对应,key(x)–value(y),好比高中函数,一个x只能有一个y,一个y却可以不止一个x。
在这里插入图片描述这两张图,非常生动形象地阐述了这个家族的关系图。
接口,可以理解为BUFF,加了个implements XXX接口,你就可以用XXX接口的各种加成效果了

Collection

以下内容都是Collection都可以用的,非常普及

Iterator

用来遍历的,和for平起平坐

  • boolean hasNext():如果被迭代的集合元素还没有被遍历完,则返回 true。
  • Object next():返回集合里的下一个元素。
  • void remove():删除集合里上一次next方法返回的元素。
  • void forEachRemaining(Consumer action),这是Java 8为Iterator新增的默认方法,该方法可使用

Predicate

可以批量删除,过滤
在这里插入图片描述这行代码,可以过滤调所有长度小于10的内容
在这里插入图片描述

foreach遍历

for循环的简便写法:

//创建一个集合
var books=new HashSet();
books.add("轻量级Java EE企业应用实战");books.add("疯狂Java讲义");
books.add(“疯狂Android讲义");
for (var obj : books)
{//此处的book变量也不是集合元素本身var book=(String) obj;
   System.out.println (book);
   if(book.equals("疯狂Android讲义"))
    {//下面代码会引发ConcurrentModificationException异常
    //books.remove(book);
    }

}   

for内部的obj其实只是个临时装东西的
每次就把当前遍历的遍历装起来、呈现一下。
var obj :books books就是被遍历的集合

Set系列

HashSet类

Set最基本的,大部分用这个

  • 保证元素顺序
  • 元素可以为null
  • 不是同步,多线程不安全

这里面判断俩元素是否相等
equals()和hashCode()的返回值都要看,都一样才是同一个!
要是重写这些方法,必须注意。
一般要保证hashCode非常独一无二,基本用各种数学随机方法保证

LinkedHashSet类

属于HashSet的子类
以链表的形式存储。

TreeSet类

顾名思义,是的类型
而且加进去的话,就自动给你变成了二叉排序树
注意不能重复,不然加不进去
而且加内容,必须同一个类型。

Comparator 是一种接口,可以自定义排序。
语法如下:

c.compare(e1, e2)==0

三级目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值