1 import static java.lang.System.out; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.HashMap; 6 import java.util.HashSet; 7 import java.util.LinkedHashMap; 8 import java.util.LinkedHashSet; 9 import java.util.LinkedList; 10 import java.util.Map; 11 import java.util.TreeMap; 12 import java.util.TreeSet; 13 14 public class ContainerFramework { 15 16 static Collection fill(Collection<String> collection) { 17 collection.add("rat"); 18 collection.add("cat"); 19 collection.add("dog"); 20 collection.add("dog"); 21 return collection; 22 } 23 24 static Map fill(Map<String, String> map) { 25 map.put("rat", "Fuzzy"); 26 map.put("cat", "Rags"); 27 map.put("dog", "Bosco"); 28 map.put("dog", "Spot"); 29 return map; 30 } 31 public static void main(String[] args) { 32 out.println(fill(new ArrayList<String>())); 33 out.println(fill(new LinkedList<String>())); 34 out.println(fill(new HashSet<String>())); 35 out.println(fill(new TreeSet<String>())); 36 out.println(fill(new LinkedHashSet<String>())); 37 out.println(fill(new HashMap<String, String>())); 38 out.println(fill(new TreeMap<String, String>())); 39 out.println(fill(new LinkedHashMap<String, String>())); 40 } 41 }
上述代码的运行结果为:
[rat, cat, dog, dog] [rat, cat, dog, dog] [cat, dog, rat] [cat, dog, rat] [rat, cat, dog] {cat=Rags, dog=Spot, rat=Fuzzy} {cat=Rags, dog=Spot, rat=Fuzzy} {rat=Fuzzy, cat=Rags, dog=Spot}
经过运行代码,查看结果可以看出,Collection打印出来的内容用方括号[]括住,每个元素由逗号分隔;Map打印出来的内容用大括号{}括住,键与值用等号连接作为一个元素(键=值),每个元素用逗号分隔。
java容器类包括两种:以Collection接口为根的集合类,和以Map为根的关联数组类
- Collection接口有三个重要的子类型:List(列表),Set(集合),Queue(队列)
- List有两个重要的实现,分别为ArrayList和LinkedList
-
- List接口的所有实现类都保证其元素可以按照插入顺序被保存,所以List是有序的collection。其中ArrayList优点在于可以高效的随机访问其元素,缺点在于在指定位置插入、移除元素的性能比较慢。而LinkedList在随机访问方面比较慢,但是在指定位置插入、移除元素的效率比较高。
2. Set有三个重要的实现,分别为HashSet,TreeSet,LinkedHashSet
-
- Set接口的所有实现类都保证其元素不会重复。HashSet使用哈希算法来存数集合中的元素,它的元素是无序的,但是获取元素的效率是最快的。TreeSet是有序的集合,它将集合中的元素按照比较结果的升序进行保存。LinkedHashSet也是有序的集合,它按照元素插入的顺序进行保存对象,同时又具有HashSet的查询速度。
3. Queue
-
- Queue允许在容器的一端进行数据的插入,在另一端进行数据的移除。
- Map接口有三个重要的子类型:HashMap,TreeMap,LinkedHashMap,可以通过键来查找值,是一种“键-值"对的容器
- HashMap是无序的,具有最快的查找速度。
- TreeMap是有序的,按照比较键的结果的升序进行保存
- LinkedHashMap是有序的,按照插元素的顺序进行保存,同时也保留了HashMap的查询速度。
时间: 2024-12-14 13:51:09