• Java 迭代器、Object类、泛型、序列化


    一、Java Iterator:

    Java Iterator(迭代器)是用于遍历集合的接口。Java Iterator提供统一的方式来访问集合中的元素,而不需要了解底层集合的具体实现细节。

    Java Iterator接口定义的几个方法:next() - 返回迭代器的下一个元素,并将迭代器的指针移到下一个位置;hasNext() - 用于判断集合中是否还有下一个元素可以访问;remove() - 从集合中删除迭代器最后访问的元素(可选操作)。

     Iterator类位于java.util包中,引入Iterator类的方式:

    import java.util.Iterator; // 引入 Iterator 类

       获取一个迭代器,使用iterator()方法。示例:

    // 引入 ArrayList 和 Iterator 类
    import java.util.ArrayList;
    import java.util.Iterator;

    public class RbTest {
        public static void main(String[] args) {

            // 创建集合
            ArrayList sites = new ArrayList();
            sites.add("Google");
            sites.add("Taobao");
            sites.add("Zhihu");

            // 获取迭代器
            Iterator it = sites.iterator();

            // 输出集合中的第一个元素
            System.out.println(it.next());
        }
    }

    循环集合元素:

    // 输出集合中的所有元素
            while(it.hasNext()) {
                System.out.println(it.next());
            }

    删除元素:

    Iterator it = numbers.iterator();
            while(it.hasNext()) {
                Integer i = it.next();
                if(i < 10) {  
                    it.remove();  // 删除小于 10 的元素
                }
            }
            System.out.println(numbers);

    二、Java Object:

    Java Object类是所有类的父类,子类可以使用Object的所有方法。Object类位于java.lang包中,编译时自动导入。

    Object类的构造函数:

    序号

    构造方法 & 描述

    1

    Object()

    构造一个新对象。

    Object类的方法:

    序号

    方法 & 描述

    1

    protected Object clone()

    创建并返回一个对象的拷贝

    2

    boolean equals(Object obj)

    比较两个对象是否相等

    3

    protected void finalize()

    当 GC (垃圾回收器)确定不存在对该对象的有更多引用时,由对象的垃圾回收器调用此方法。

    4

    Class getClass()

    获取对象的运行时对象的类

    5

    int hashCode()

    获取对象的 hash 值

    6

    void notify()

    唤醒在该对象上等待的某个线程

    7

    void notifyAll()

    唤醒在该对象上等待的所有线程

    8

    String toString()

    返回对象的字符串表示形式

    9

    void wait()

    让当前线程进入等待状态。直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。

    10

    void wait(long timeout)

    让当前线程处于等待(阻塞)状态,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过参数设置的timeout超时时间。

    11

    void wait(long timeout, int nanos)

    与 wait(long timeout) 方法类似,多了一个 nanos 参数,这个参数表示额外时间(以纳秒为单位,范围是 0-999999)。 所以超时的时间还需要加上 nanos 纳秒。。

    三、Java 泛型:

    Java 泛型提供了编译时类型安全检测机制,允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数。

    定义泛型方法的规则:

    ◆ 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。

    ◆ 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。

    ◆ 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。

    ◆ 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像 int、double、char 等)

    泛型标记符:

    E - Element (在集合中使用,因为集合中存放的是元素)

    T - Type(Java 类)

    K - Key(键)

    V - Value(值)

    N - Number(数值类型)

    ? - 表示不确定的 java 类型

    类型通配符:

    ◆ 类型通配符一般是使用?代替具体的类型参数。

    ◆ 类型通配符上限通过形如List来定义。

    ◆ 类型通配符下限通过形如 List 来定义,表示类型只能接受 Number 及其上层父类类型,如 Object 类型的实例

    四、Java 序列化:

    Java 序列化是将对象转换为字节流的过程,以便将对象保存在磁盘上,将其传输到网络上,或者将其存储在内存中,以后再进行反序列化,将字节流重新转换为对象。Java 序列化是通过java.io.Serializable接口来实现。

    import java.io.Serializable;

    public class MyClass implements Serializable {
         // 类的成员和方法
    }

    序列化对象:ObjectOutputStream 类用来序列化一个对象。

    反序列化对象:ObjectInputStream类来反序列化一个对象。

  • 相关阅读:
    springboot基础
    LVS集群 ----------------(直接路由 )DR模式部署 (二)
    Java环境变量的配置
    怎么压缩ppt大小?快速压缩ppt文件
    Leetcode 93. Restore IP Addresses
    攻防世界-web-wzsc_文件上传
    计算机视觉的应用17-利用CrowdCountNet模型解决人群数量计算问题(pytorch搭建模型)
    传输层协议-TCP各个字段含义
    进程相关概念
    【每日一题Day46】LC1796字符串中第二大的数字 | 模拟
  • 原文地址:https://blog.csdn.net/corlin6688/article/details/134548923