List / Map / Collections

来源:互联网 发布:vue node sass 编辑:程序博客网 时间:2024/05/16 02:02

LinkedList可以根据索引来访问集合中的元素,此外还实现了Deque接口,所以也可以当成双端队列来使用,即可当“栈”(先进后出),也可以当作队(先进先出);内部是以线性表和链表实现的,保证输入的顺序。通常用Iterator遍历。
示例:

public class LinkedListDemo {      /**      * @param args      */      public static void main(String[] args) {          LinkedList<String> list = new LinkedList<String>();          list.add("哈哈");          list.add("呵呵");          list.add("嘿嘿");          print(list);          list.addFirst("嘻嘻");//链表可以在头或尾插入          print(list);          //将元素加入到对头          list.offerFirst("来来");          //将元素加入到队尾          list.offerLast("去去");          print(list);          //访问并不删除栈顶          System.out.println("访问并不删除栈顶----" +list.peekFirst());          print(list);          //访问并删除栈顶          System.out.println("访问并删除栈顶----" + list.poll());          print(list);      }      public static void print(List list){          Iterator iterator = list.iterator();          while(iterator.hasNext()){              System.out.print(iterator.next() + " ");          }          System.out.println();      }  }  

注意:LinkedList在进行删除、插入操作时性能更优,而ArrayList在遍历的时候应能更优。

LinkedHashMap
LinkedHashMap也是使用双向链表来维护key-value,保证迭代顺序与key-value对的插入顺序一直。
示例:

public class LinkedHashMapDemo {      /**      * @param args      */      public static void main(String[] args) {          LinkedHashMap<Integer, String> map = new LinkedHashMap<Integer,String>();          map.put(12, "吃饭");          map.put(14, "睡觉");          map.put(13, "打豆豆");          map.put(11, "刷牙");          map.put(15, "上厕所");          //第一种遍历方式keySet()          Set<Integer> keySet = map.keySet();          Iterator<Integer> i = keySet.iterator();          while(i.hasNext()){              Integer key = i.next();              System.out.println("键是:" + key + "值是:" + map.get(key));          }      }  }  

collections查找替换操作
示例:

public class Demo10 {      public static void main(String[] args) {          List list = new ArrayList<Integer>();          list.add(4);          list.add(3);          list.add(12);          list.add(-9);          //自然排序          Collections.sort(list);          print(list);          //查找、替换          System.out.println("最大元素是:" + Collections.max(list));          System.out.println("4的索引是:" + Collections.binarySearch(list, 4));          System.out.println("替换所有的元素:" );          Collections.fill(list, 1);          print(list);      }      public static void print(List<Integer> arr){          for(Integer str:arr){              System.out.print(str + " ");          }          System.out.println();      }  }