zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    使用自绘控件详细步骤转
    对话框上如何创建视图
    c++ 分割字符串存入数组
    在对话框上创建视图的报错》ASSERT(pParentFrame == pDesktopWnd || pDesktopWnd>IsChild(pParentFrame))
    CMFCOutlookBarTabCtrl 不显示了
    常用加密算法概述
    [两个月,黎巴嫩]贝鲁特守望
    [C#]XmlDocument_修改xml文件操作.
    wordpress之客户端发布文章
    大二上躺平经验
  • 原文地址:https://www.cnblogs.com/zjdbk/p/8991463.html
Copyright © 2011-2022 走看看