ArrayList添加对象时是否使用了添加对象的hashCode方法

JPG*_*JPG 4 java arraylist hashcode

下面的代码是否使用了hashCodeScooter类的方法:

void using_ArrayList(){
        List coll=new ArrayList();

        Scooter s1=new Scooter();
        s1.setNumber("HR26KC345352344");
        s1.setHorse_power(123.321);
        s1.setYear_of_made(1997);

        Scooter s2=new Scooter();
        s2.setNumber("HR26KC34535");
        s2.setHorse_power(123.321);
        s2.setYear_of_made(1997);

        Scooter s3=new Scooter();
        s3.setNumber("HR26KC345352344");
        s3.setHorse_power(123.321);
        s3.setYear_of_made(1997);

        coll.add(s1);
        coll.add(s2);
        coll.add(s3);

        Scooter s=new Scooter();
        s.setNumber("HR26KC345352344");
        System.out.println(coll.contains(s));
}
Run Code Online (Sandbox Code Playgroud)

滑板车类别:

class Scooter{
    private String number;
    private double horse_power;
    private int year_of_made;
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public double getHorse_power() {
        return horse_power;
    }
    public void setHorse_power(double horse_power) {
        this.horse_power = horse_power;
    }
    public int getYear_of_made() {
        return year_of_made;
    }
    public void setYear_of_made(int year_of_made) {
        this.year_of_made = year_of_made;
    }

    public boolean equals(Object o){
        if((o instanceof Scooter)&&((Scooter)o).getNumber()==this.getNumber()){
            System.out.println("EQUALS:TRUE"); //OK
            return true;
        }
        else{
            System.out.println("EQUALS:FALSE"); //OK
            return false;
        }
    }

    public int hashCode(){
        System.out.println("HASHCODE");// NOT able To reach here...
        return number.length();
    }

}
Run Code Online (Sandbox Code Playgroud)

我能够达到equals()方法。但无法达到hashCode()方法。hashCode()集合不使用方法吗ArrayList?请告诉我,因为我是 Java 集合的新手。

War*_*Dew 5

与 HashMap 不同,ArrayList 不需要使用 hashCode() 方法,因为 ArrayList 中元素的顺序是由它们插入的顺序决定的,而不是由哈希决定的。