链表(linked list):是一个有序集合(ordered collection)。
List<String> staff = new LinkedList<String>(); staff.add("Bob"); staff.add("Amy"); staff.add("Carl"); Iterator<String> itr = staff.iterator(); itr.next(); //先移动再删除 B|AC 删除光标之前的元素B itr.remove(); Iterator<String> itra = staff.iterator(); while(itra.hasNext()){ System.out.print(itra.next()+" "); }
打印:Amy Carl
ListIterator具有add方法,而Iterator不具有。
set方法是将光标前一元素进行替换。
List<String> staff = new LinkedList<String>(); staff.add("Bob"); staff.add("Amy"); staff.add("Carl"); ListIterator<String> itr = staff.listIterator(); itr.next(); //先移动再添加 B|AC 在光标之前添加元素 itr.add("Juliet"); Iterator<String> itra = staff.iterator(); while(itra.hasNext()){ System.out.print(itra.next()+" "); }
打印:Bob Juliet Amy Carl
HashSet:基于散列表的集(hash table)。无序集合。
Set<String> words = new HashSet<String>();
TreeSet(树集):有序集合。可以自动的对添加的元素进行排序。
查找添加新元素的位置需要log2n次比较。
添加一个元素要比HashSet慢。
SortedSet<String> sorter = new TreeSet<String>(); sorter.add("Bob"); sorter.add("Amy"); sorter.add("Carl"); for(String s:sorter){ System.out.println(s); }
打印结果: Amy Bob Carl