妖碧落

导航

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;                                    //将新集合返回
            }

 

posted on 2019-08-05 21:39  妖碧落  阅读(292)  评论(0编辑  收藏  举报