秋实华的天地 2021-02-21 08:53 采纳率: 0%
浏览 73

为什么,System.out.println(s.toString()+" fjjj"没输出?

package set;

import java.util.ArrayList;
import java.util.ListIterator;

public class Lesson7 {
    public static void main(String[] args) {
        /*
        * ArrayList
        * 数组结构的实现,查询快,增删慢
        * 运行效率快,线程不安全
        * Vector  与ArrayList类似 数组结构的实现,查询快,增删慢
        * 运行效率慢,线程安全
        *
        * LinkedList:  链表结构实现,增删快,查询慢
        *
        * */
        //创建ArrayList
        ArrayList arrayList = new ArrayList<>();
        Lesson3Student s1 = new Lesson3Student("刘德华", 42);
        Lesson3Student s2 = new Lesson3Student("郭富城",54);
        Lesson3Student s3 = new Lesson3Student("梁朝伟",53);
        arrayList.add(s1);
        arrayList.add(s2);
        arrayList.add(s3);

        //使用列表迭代器从后往前遍历元素
        ListIterator listIterator = arrayList.listIterator(); //创建迭代器
        while (listIterator.hasPrevious()) {
            Lesson3Student s = (Lesson3Student) listIterator.previous();
            System.out.println(s.toString()+" fjjj");
        }//previousIndex()从后往前返回下标,previous()从后往前返回元素,并向前查找

    }
}
package set;

public class Lesson3Student {
    private String name;
    private int age;

    public Lesson3Student() {
    }

    public Lesson3Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Lesson3Student{" + "name='" + this.name + ", age=" + this.age + '}';
    }

    @Override   //给Lesson7用的重载方法
    public boolean equals(Object obj) {
//        判断是否为空
        if (obj == null) {
            return false;
        }
//        判断是否是同一个对象
        if (this == obj) {
            return true;
        }
//        判断是否为同一个类型
        if (obj instanceof Lesson3Student) {
            Lesson3Student s =  (Lesson3Student)obj;
            // 判断属性是否相等
            if (this.name == s.getName()&&this.age == s.getAge()){
                return true;
            }

        }
        return false;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
  • 写回答

3条回答 默认 最新

  • thisisnew 2021-02-21 10:10
    关注

    hasPrevious()指的是前面有没有元素,因为你创建listIterator()是从零开始的,循环开始的时候hasPrevious是空的,所以循环直接结束。

    你想做的应该是从后往前输出

    所以要把迭代器设置到最后面

    改成

    ListIterator listIterator = arrayList.listIterator(arrayList.size()); //创建迭代器,并且指定迭代器位置为最后一位


     

    评论

报告相同问题?

悬赏问题

  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的