鱼C论坛

 找回密码
 立即注册
查看: 3679|回复: 0

[学习笔记] Java暑期学习Day40

[复制链接]
发表于 2017-8-15 22:20:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第40天,还是尽量多看视频查资料,努力找到记重点的方法<。)#)))≦


                               
登录/注册后可看大图


①今天做的一些错题涉及的点
    方法内定义的变量被称为局部变量
    变量的作用范围从声明开始,直到包含它的块结束。重点&#9829;
    变量必须声明才可以使用。

   (不同的方法中定义的变量的变量名可以相同,取决于其作用域


    一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类
    接口中所有的方法必须是抽象方法
    抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。重点&#9829;


    接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字
    接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键子。
    接口中的方法都是公有的

    如果实现接口的类是抽象类,那么就没必要实现该接口的方法。重点&#9829;
    接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法。


②Iterable(java.lang—)和Iterator(java.util—)
相关API
1.Interface Iterable<T>(从JDK1.5开始)
  
Modifier and Type
Method and Description
default void


forEach(Consumer<? super T> action)
对 Iterable的每个元素执行给定的操作,
直到所有元素都被处理或动作引发异常。
Iterator<T>
iterator()
返回类型为 T元素的迭代器。
default Spliterator<T>
spliterator()
在Iterable描述的元素上创建一个Iterable 。

import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;


public class ForEach {
        public static void main(String[] args) {
                List names=Arrays.asList("a","b","c");//asList()方法接收不定长度自变量
        forEach(names);
                System.out.println("~~~~~~~");
                forEach(new HashSet(names));//HashSet具有接受Collection的构造函数
                System.out.println("~~~~~~~");
                forEach(new ArrayDeque(names));
                
                
        }
        static void forEach(Iterable iterable){
                for(Object o:iterable){
                        System.out.println(o);
                }
        }

}
结果是——
a
b
c
~~~~~~~
a
b
c
~~~~~~~
a
b
c



2.public interface Iterator<E>一个集合的迭代器。
Iterator需要的地方Enumeration在Java集合框架。

迭代器有两种不同的枚举方式:
a.迭代器允许调用者在迭代期间从底层集合中删除元素,并具有明确定义的语义。
b.方法名称得到改进。
(从JDK1.2开始)

Modifier and Type
Method and Description
default void
forEachRemaining(Consumer<? super E> action)
对每个剩余元素执行给定的操作,
直到所有元素都被处理或动作引发异常。
boolean
hasNext()
如果迭代具有更多元素,则返回 true 。
E
next()
返回迭代中的下一个元素。
default void
remove()
从底层集合中删除此迭代器返回的最后一个元素(可选操作)。








  在JDK5之后,原先定义在Collection中的iterator()方法,提升至新的java.util.Iterable父接口,增强式for循环(编译程序蜜糖)可运用在数组上,还可在操作Iterable接口的对象上。

  
  

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 13:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表