• 1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

  • 2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>

  • 3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。

另:

List遍历

 public static void main( String[] args ){

         List<String> list=new ArrayList<String>();
list.add("Hello");
list.add("World");
list.add("HAHAHHAHAHHA"); //第一种遍历方法使用foreach遍历List
for(String str :list){
System.out.println(str);
} //第二种遍历,把链表变为数组相关的内容进行遍历
String[] stringArray=new String[list.size()];
list.toArray(stringArray);
for(int i=0;i<stringArray.length;i++){
System.out.println(stringArray[i]); } //第三种遍历 使用迭代器进行相关遍历
Iterator<String> ite=list.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}

Map遍历

 public static void main(String[] args) {

         Map<String,String> map=new HashMap<String,String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3"); //第一种:普遍使用,二次取值 通过Map.KeySet遍历key和value
System.out.println("通过Map.keySet遍历key和value:");
for(String key:map.keySet()){
System.out.println("key="+key+" value="+map.get(key));
} //第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String,String>> it=map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String, String> entry=it.next();
System.out.println("value="+entry.getKey()+" and value="+entry.getValue());
} //第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} //第四种
System.out.println("不能获取key,只能获取value");
for(String str:map.values()){
System.out.println(str);
}
}
05-11 16:09