List,Set,Map都继承自Collection接口。
List中的元素是有序存储,其中放入的值可以重复,以下标进行检索。
Set中的元素也是无序存储的,但是里面不能存储重复的值。
Map中的元素是以键值对的方式进行存储的。
List接口有三个实现类:LinkedList,ArrayList,Vector 。
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低
Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null;
HashTable线程安全,低效,不支持null
以上几种存储类型的操作非常类似,代码如下:
List<String> list = new ArrayList<>();
list.add("hello");
list.add(".");
list.add("world");
Iterator<String> it2 = list.iterator();
while (it2.hasNext())
System.out.print(it2.next());
for (String s : list)
System.out.print(s);
Set<String> set = new HashSet<>();
set.add("hello");
set.add(".");
set.add("world");
Iterator<String> it1 = set.iterator();
while (it1.hasNext())
System.out.print(it1.next());
for (String s : set)
System.out.print(s);
Map<String, String> map = new HashMap<>();
map.put("0", "hello");
map.put("1", ".");
map.put("2", "world");
Set<String> keySet = map.keySet();
Iterator<String> it3 = keySet.iterator();
while (it3.hasNext())
System.out.print(it3.next());
for (String key : keySet)
System.out.print("key:" + key + ",value:" + map.get(key));
知识点的介绍到此结束。虽然以前也这些知识也算熟悉,但是通过这段时间的学习,对Java基础知识又有了一个更系统更全面的了解。