集合 LinkedList、Hashset、TreeSet --基础

时间:2021-01-13 17:56:28

链表(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