一、含义
1.List:是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。常见的实体类:ArrayList、LinkedList、Vector。
2.Set:具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。Set 接口存储一组唯一,无序的对象。常见实体类:HashSet、LinkedHashSet、TreeSet。
3.Map:Map 接口存储一组键值对象,提供key(键)到value(值)的映射。常见实体类:HashMap、TreeMap、Hashtable。
二、区别
1.List、Set都是继承自Collection接口,Map则不是
2.List元素有放入顺序,可以允许重复的对象;Set元素无放入顺序,元素不可重复,重复元素会覆盖掉;Map 的 每个 Entry 都持有两个对象,也就是一个键一个值,Map 可能会持有相同的值对象但键对象必须是唯一的。
3.List元素有放入顺序;Set元素无放入顺序
4.List可以插入多个null元素;Set只允许一个 null 元素;Map 里你可以拥有随意个 null 值但最多只能有一个 null 键。
5.Map适合储存键值对的数据
三、代码实现以及实现遍历的各种方法
1.代码
package Test.Test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class App
{
public static void main( String[] args )
{
//1.List
List<String> list = new ArrayList();
list.add("list11");
list.add("list22");
list.add("list33");
list.add(null);
list.add("list22");
System.out.println(list);
//list遍历方法①
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
//list遍历方法②
for(String info : list) {
System.out.println(info);
}
//list遍历方法③:利用Iterator
Iterator<String> it = list.iterator();
//it.hasNext() 用于检测集合中是否还有元素。
while(it.hasNext()) {
//it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
System.out.println(it.next());
}
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
//2.set
Set<String> set = new HashSet<String>();
set.add("set11");
set.add("set22");
set.add("set33");
set.add(null);
set.add("set22");
System.out.println(set);
//Set遍历方法①:利用Iterator
Iterator<String> it1 = set.iterator();
while(it1.hasNext()) {
//it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
System.out.println(it1.next());
}
//Set遍历方法②
for (String sss : set) {
System.out.println(sss);
}
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
//3.map
Map<String,String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", null);
map.put("key4", null);
System.out.println(map);
//map遍历方法①:通过key来获取value值
Set<String> mapKey = map.keySet();
for(String key : mapKey) {
System.out.println(key +":"+map.get(key));
}
//map遍历方法②:直接获取键值对
for (Map.Entry<String, String> mapKey1 : map.entrySet()) {
System.out.println(mapKey1.getKey()+" : "+mapKey1.getValue());
}
}
}
2.显示效果图