zoukankan      html  css  js  c++  java
  • ArrayList-VS-LinkedList

    ArrayList 是List接口的实现类;底层的数据结构是数组,而LinkedList底层数据结构是双向循环链表。

      所以在查询时ArrayList效率高,增删时LinkedList高。由于List中有索引,可以在指定位置插入。在iterator迭代器取元素时,在调用Arraylist中的iterator()返回的其实是Iterator接口实例, Iterator it = new Str();

    而Str是ArrayList的一个内部私有类,实现了Iterator接口,所以有next(),hasNext(),..方法。而ListIterator 是Iterator的子接口。在remove()或contain()方法中调用的是ArrayList中的equals比较对象是否存在。可以通过重写看到。

    public class ArrayListTest {

    public static void main(String[] args) {

    List list = new MyList();

    list.add(new Person5("haha",34));
    list.add(new Person5("haha",34));
    list.add(new Person5("haha",34));
    //System.out.println(list.remove(new Person5("haha",34)));
    System.out.println(list.remove(new Person5("haha",34)));

    ListIterator it =list.listIterator();
    while(it.hasNext()){
    Person5 p = (Person5)it.next();
    System.out.println(p.getName()+"--------"+p.getAge());
    }
    }

    }

    class Person6 {
    private String name;
    private int age;
    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;
    }
    public Person6(String name, int age) {
    super();
    this.name = name;
    this.age = age;
    }

    public int hashCode(){
    System.out.println("----hashCode------");
    return this.age;

    }

    public boolean equals(Object o){
    Person5 p =(Person5)o;
    System.out.println(this.name+"------equals---"+p.getName());
    if(!(p instanceof Person5))
    return false;
    return this.name.equals(p.getName());
    }

    }

    class MyList extends ArrayList{

    @Override
    public boolean remove(Object o) {
    // TODO Auto-generated method stub
    System.out.println("调用了remove方法----");
    return super.remove(o);
    }


    }

  • 相关阅读:
    curd_4
    curd_2
    Python Regex库的使用
    Python Assert 确认条件为真的工具
    Python Regex库的使用(2)
    Python lambda的用法
    Python 列表综合
    with ss(date,date2) (select * from sysdummy1) select * from ss
    延迟执行函数
    ObjectiveC 的基本数据类型、数字、字符串和集合等介绍
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4588375.html
Copyright © 2011-2022 走看看