1.面向对象
对象:就是每一个类都有一个域名,然后对象进行拼装,变成了新的对象
个人理解:人是一个对象,简单分可以分成头,身体。头和身体也可以看成一个对象,一直分到不能再分
2.util包
java.util
collection 集合接口
集合架构图
架构图比较复杂,我们先不看,只看api
我们先学习collection的父类Iterable ,iterable是1.5之后添加进来的,并且只有一个方法,遍历集合的数据
代码地址: https://github.com/ant1024ant/javaUtil.git
Iterator类的源码:
先来看下@Contract(pure=true)注解
@Contract 注释通过定义方法参数和返回值之间的依赖关系
package org.jetbrains.annotations;
import java.lang.annotation.*;
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
public @interface Contract {
String value() default "";
boolean pure() default false;
}
自己测试了一下,就相当于一个描述符,没有其他作用
能够将Iterator中迭代剩余的元素传递给一个函数,eg:
List<String> list = Arrays.asList("a", "b", "c", "d", "e");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
if ("c".equals(it.next())){
break;
}
}
it.forEachRemaining(s -> System.out.print(s + " ")); // 输出 d e