本文共 2182 字,大约阅读时间需要 7 分钟。
一、Iterator和ListIterator的区别
Iterator:
只能按次序从前往后遍历,只能读,
ListIterator 1)允许我们向前、向后两个方向遍历 List; 2)在遍历时可以修改List 的元素 3)制定元素开始遍历二、CopyOnWriteArrayList
CopyOnWriteArrayList
写时复制:写操作的时候,把List复制一份做写操作,操作完复制回去 弱点: 弱一致性 浪费内存三、HashMap和TreeMap
HashMap:没有顺序,key散列算法
TreeMap:保证顺序
四、comparable和comparator
comparable
comparator
public class User implements Comparable{ @Override public int compareTo(User o) { return this.age - o.age; } private int age ; private String name ; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; }}public class User2 { private int age ; private String name ; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; }}public class UserComparator implements Comparator { @Override public int compare(User2 o1, User2 o2) { return o1.getAge()-o2.getAge(); }}public class CompareTest { public static void main(String[] args) { try{ TreeSet treeSet1 = new TreeSet (); User user1 = new User(); user1.setAge(10); user1.setName("name_10"); User user2 = new User(); user2.setAge(20); user2.setName("name_20"); User user3 = new User(); user3.setAge(9); user3.setName("name_9"); treeSet1.add(user1); treeSet1.add(user2); treeSet1.add(user3); TreeSet treeSet2 = new TreeSet (new UserComparator()); User2 user21 = new User2(); user21.setAge(10); user21.setName("name_10"); User2 user22 = new User2(); user22.setAge(20); user22.setName("name_20"); User2 user23 = new User2(); user23.setAge(9); user23.setName("name_9"); treeSet2.add(user21); treeSet2.add(user22); treeSet2.add(user23); String d = null; }catch (Exception e){ e.printStackTrace(); } }}
转载地址:http://mfbnb.baihongyu.com/