《集合类和线程.pptVIP

  • 1
  • 0
  • 约 21页
  • 2016-12-29 发布于北京
  • 举报
集合类和线程 集合类框架 集合类框架 区别——Collection List Set Queue List List 关心的是索引,与其他集合相比,List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。 ArrayList 可以将它理解成一个可增长的数组,它提供快速迭代和快速随机访问的能力。 LinkedList 中的元素之间是双链接的,当需要快速插入和删除时LinkedList成为List中的不二选择。 import java.util.ArrayList; import java.util.Collection; public class CollectionTest {??? public static void main(String[] args) {?????? String a = a,b=b,c=c; ??????? Collection list = new ArrayList(); ????????list.add(a);?????? ? list.add(b);????? ?list.add(c);? ????? String[] array =? list.toArray(new String[1]); ????????for(String s : array) {??????????? ? System.out.println(s); ???????? }?? ?} Set Set关心唯一性,它不允许重复。 HashSet 当不希望集合中有重复值,并且不关心元素之间的顺序时可以使用此类。(最快获取元素方式) LinkedHashset 当不希望集合中有重复值,并且希望按照元素的插入顺序进行迭代遍历时可采用此类。 TreeSet 当不希望集合中有重复值,并且希望按照元素的自然顺序进行排序时可以采用此类。(自然顺序意思是某种和插入顺序无关,而是和元素本身的内容和特质有关的排序方式,譬如“abc”排在“abd”前面。) import java.util.LinkedHashSet; import java.util.Random; import java.util.Set; import java.util.TreeSet; public class SetTest { public static void main(String[] args) { @SuppressWarnings(rawtypes) Set set = new TreeSet(); Random random = new Random(); for(int i = 0; i 1000 ; i++) { set.add(random.nextInt(30)); } System.out.println(set); } } [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29] Queue Queue用于保存将要执行的任务列表。 LinkedList 同样实现了Queue接口,可以实现先进先出的队列。 PriorityQueue 用来创建自然排序的优先级队列。 import java.util.*; public class QueueTest { public static void main(String[] args) { PriorityQueueString pq = new PriorityQueueString(); pq.add(carrot); pq.add(apple); pq.add(banana); System.out.println(pq.poll() + : + pq.peek()); } } Map Map关心的是唯一的标识符。他将唯一的键映射到某个元素。当然键和值都是对象。 HashMap 当需要键值对表示,又不关心顺序时可采用HashMap。 Hashtable 注意Hashtable中的t是小写的,它是HashMap的线程安全版本,现在已经很少使用。 LinkedHashMap 当需要键值对,并且关心插入顺序时可采用它。 TreeMap 当需要键值对,并关心元素的自然排序时可采用它。

文档评论(0)

1亿VIP精品文档

相关文档