list中允许有重复的元素,而set中不允许有重复的元素。
package cn.hncu.Test; import java.util.HashMap; import java.util.Map; public class test1 { public static void main(String[] args) { /* Map<String,String> map=new HashMap<String, String>(); map.put(String.valueOf(System.currentTimeMillis()+"a"),"1"); map.put(String.valueOf(System.currentTimeMillis()+"a"), "2"); map.put(String.valueOf(System.currentTimeMillis()+"a"), "3"); for(Map.Entry<String, String> entry:map.entrySet()){ System.out.println(entry.getValue()); 这个地方输出的是3---原因是因为set没有重复的元素,所以后面的3覆盖了前面的数字; */ Map<String,String> map=new HashMap<String, String>(); map.put(String.valueOf(System.nanoTime()+"a"),"1"); map.put(String.valueOf(System.nanoTime()+"a"),"2"); map.put(String.valueOf(System.nanoTime()+"a"),"3"); for(Map.Entry<String, String> entry:map.entrySet()){ System.out.println(entry.getValue()); //下面输出的是123顺序不确定 } } }
上面代码的结果不一样主要是由于
System.currentTimeMillis()时间是相等的
System.nanoTime()单位是纳秒来获取时间,用来测试代码段在同一线程上执行所消耗的时间。所以在时间上不一样。