LinkedList 链表及练习

Posted yaobiluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinkedList 链表及练习相关的知识,希望对你有一定的参考价值。

LinkedList:
  getFirst()    getLast()     addFirst()    addLast()    removeFirst()    removeLast()
  get(index) 查找,慢

ArrayList:
  底层数据结构是数组,查询快,增删慢。
  线程不安全,效率高。
LinkedList:
  底层数据结构是链表,查询慢,增删快。
  线程不安全,效率高。
Vector:
  底层数据结构是数组,查询快,增删慢。
  线程安全,效率低。

练习题: ArrayList去除集合中字符串的重复值(字符串的内容相同)
  思路:创建新集合方式,新集合添加的时候用contains()判断

练习题: ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
  思路: 自定义对象 要重写equals()方法

/**
             *  A:案例演示
             * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
             * 思路:创建新集合方式
             */
            public static void main(String[] args) 
                ArrayList list = new ArrayList();
                list.add("a");
                list.add("a");
                list.add("b");
                list.add("b");
                list.add("b");
                list.add("c");
                list.add("c");
                list.add("c");
                list.add("c");
                
                System.out.println(list);
                ArrayList newList = getSingle(list);
                System.out.println(newList);
            
        
            /*
             * 去除重复
             * 1,返回ArrayList
             * 2,参数列表ArrayList
             */
            public static ArrayList getSingle(ArrayList list) 
                ArrayList newList = new ArrayList();            //创建一个新集合
                Iterator it = list.iterator();                    //获取迭代器
                while(it.hasNext())                             //判断老集合中是否有元素
                    String temp = (String)it.next();            //将每一个元素临时记录住
                    if(!newList.contains(temp))                 //如果新集合中不包含该元素
                        newList.add(temp);                        //将该元素添加到新集合中
                    
                
                return newList;                                    //将新集合返回
            

 

以上是关于LinkedList 链表及练习的主要内容,如果未能解决你的问题,请参考以下文章

LinkedList源码分析

LinkedList 源码分析与总结

java-集合框架-LinkedList运用

206. 反转链表及扩展

LinkedList集合

java集合系列之LinkedList源码分析