程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

java笔记(5)Iterator、ListIterator、Object

发布于2021-06-12 12:39     阅读(741)     评论(0)     点赞(21)     收藏(1)


在这里插入图片描述
迭代器是接口,被其他集合实现用来遍历。

 ArrayList<Integer> sites = new ArrayList<>();
 sites.add(10);
 sites.add(23);
 sites.add(34);
 Iterator<Integer> iterator = sites.iterator();
 while (iterator.hasNext()) {
     System.out.println(iterator.next());
 }
10
23
34

ListIterator 的 previousIndex() 返回后序调用 previous() 的索引,在表头就返回-1;

add() 的作用是当前位置插入元素,后移一步。

System.out.println("依次打印集合所有元素------------------------");
while (it.hasNext()) {
      System.out.println(it.next());
  }

  System.out.println("当前集合还有下一个元素么?="+it.hasNext());
  // add() 往当前位置插入一个值,然后向后跳一步,需要用previous()
  // 才能看到该新插入的值。
  it.add(999);
  System.out.println("在集合当前位置插入一个元素后向后走------------------------");
  System.out.println("上一个元素:"+it.previous());
  System.out.println("当前集合还有下一个元素么?="+it.hasNext());

  System.out.println("下一个元素:"+it.next());
  System.out.println("当前集合还有下一个元素么?="+it.hasNext());

result:

依次打印集合所有元素------------------------
10
23
34
当前集合还有下一个元素么?=false
在集合当前位置插入一个元素后向后走------------------------
上一个元素:999
当前集合还有下一个元素么?=true
下一个元素:999
当前集合还有下一个元素么?=false

set() 是用指定的元素替换最近返回的元素,位置不发生改变。

System.out.println("向后依次打印集合所有元素------------------------");
while (it.hasNext()) {
    System.out.println(it.next());
}
it.set(999);

System.out.println("当前集合还有下一个元素么?="+it.hasNext());
//        System.out.println("当前集合的上一个元素是"+it.previous());

System.out.println("向前依次打印集合所有元素------------------------");
while (it.hasPrevious()) {
    System.out.println(it.previous());
}
it.set(888);

System.out.println("向后依次打印集合所有元素------------------------");
while (it.hasNext()) {
    System.out.println(it.next());
}

result

向后依次打印集合所有元素------------------------
10
23
34
当前集合还有下一个元素么?=false
向前依次打印集合所有元素------------------------
999
23
10
向后依次打印集合所有元素------------------------
888
23
999

Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法

package test;

/**
 * @Description: TODO
 * @author: HardyDragon
 * @date: 2021年06月10日 17:04
 */
public class Test07 {
    public static void main(String[] args) {
        User user = new User();
        user.name = "Tom";
        user.age = 18;

        System.out.println(user.name);
        System.out.println(user.age);

        // 由于 Object 本身没有实现 Cloneable 接口,
        // 所以不重写 clone 方法并且进行调用的话会发生 CloneNotSupportedException 异常。
        try {
            User clone = (User)user.clone();
            System.out.println(clone.name);
            System.out.println(clone.age);

        } catch (Exception e) {
            System.out.println(e);
        }

    }
}
// 类需要实现 Cloneable 接口才能使用clone方法
class User extends Object implements Cloneable{
    String name;
    int age;

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

result

Tom
18
Tom
18

equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等

notify() 和notifyAll() 和线程相关。唤醒在该对象上等待的某个线程/所有线程

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

wait() 还可以设置超时参数和额外时间参数。。



所属网站分类: 技术文章 > 博客

作者:niceboty

链接:http://www.javaheidong.com/blog/article/221866/e1826397e074f3afeda2/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

21 0
收藏该文
已收藏

评论内容:(最多支持255个字符)