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; //将新集合返回 }
竹杖芒鞋轻胜马,一蓑烟雨任平生。
回首向来萧瑟处,也无风雨也无晴。