49. ArrayList LinkedList中特有的方法

集合的体系:
--------------| Collection  单列集合的根接口

----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复

------|ArrayList  ArrayList底层维护了一个Object数组实现的,特点是:查询快,增删慢
使用场景:如果目前的数据查询比较多,删除比较少的时候,那么就使用ArrayList存储这批数据,比如:高校的读书馆
注意:使用ArrayList无参构造函数时,Object初始的长度是10,长度不够时自动增长0.5倍

------|LinkedList LinkedList底层使用了链表数据结构实现的。特点是:查询速度慢,增删快
使用场景:如果目前的数据增删比较多,查询比较少的时候,那么就使用LinkedList存储这批数据

----------| Set  如果实现了Set几口的集合类,该类具备的特点:无序,不可重复
 

ArrayList的构造函数:

ArrayList()          构造一个初始容量为 10 的空列表。
ArrayList(Collection<? extends E> c) 构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity)   构造一个具有指定初始容量的空列表。


下面的方法了解即可,因为我们实际开发中一般都是使用List接口中的一些方法

ArrayList中特有的方法(了解即可):

ensureCapacity(int minCapacity)  如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数
我们一般是使用ArrayList的构造函数指定初始容量
trimToSize()        将此 ArrayList 实例的容量调整为列表的当前大小。



LinkedList中特有的方法(了解即可):

    addFirst(E e)   将指定元素插入此列表的开头。
    addLast(E e)    将指定元素添加到此列表的结尾。
    getFirst()      返回此列表的第一个元素。
    getLast()       返回此列表的最后一个元素。
    removeFirst()   移除并返回此列表的第一个元素。
    removeLast()    移除并返回此列表的最后一个元素。
    
    栈:先进后出
    push() 将元素添加到此集合的开头
    pop()  删除集合的首元素并返回
    
    队列:先进先出
    offer  将元素添加到此元素的末尾
    poll   删除集合的首元素并返回
    
    descendingIterator()  返回逆序的迭代器对象

 

下面是清除集合中的重复元素代码例子:

 

class Book{
    
    int id;
    String name;
    
    public Book(int id , String name) {
        this.id = id;
        this.name = name;
    }
    @Override
    public boolean equals(Object obj) {
        Book book = (Book)obj;
        return this.id == book.id;
    }
    @Override
    public String toString() {
        
        return "{ 书号:"+this.id+" 书名:"+this.name+" }";
    }
}
public class Demo2 {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(new Book(1001, "java编程思想"));
        list.add(new Book(1002, "java核心技术"));
        list.add(new Book(1003, "javaweb"));
        list.add(new Book(1001, "java编程思想"));
        
        
        System.out.println(clearRepeat(list));
        LinkedList list1 = new LinkedList();
        list1.add("狗娃");
        list1.add("狗剩");

        System.out.println(list1.poll());
        System.out.println(list1);
    }
    
    public static ArrayList clearRepeat(ArrayList list) {
        ArrayList newlist = new ArrayList();
        Iterator it = list.iterator();
        while(it.hasNext()) {
            Book book = (Book)it.next();
            if(!newlist.contains(book)) {
                newlist.add(book);
            }
        }
        return newlist;
    }
}

 

posted @ 2018-05-04 16:53  江小白鞋  阅读(516)  评论(0编辑  收藏  举报