集合接口
Collection 接口
Collection是最基本的集合接口,一个Collection代表一组Object,Java不提供直接继承自Collection的类
,只提供继承于子接口(如Lis和Set)
List 接口
List接口是一个有序的Collection,是从此接口能够精确地控制每个元素插入的位置,
能够通过索引(元素在List中位置,类似数组下标来访问List中的元素,第一个元素索引位置为0,而且允许有相同的
元素)
Set
Set具有与Collection完全一样的接口,只是行为上不同,Set不保存重复的数据;
Map
将唯一的键映射到值;
Set和List的区别
1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。
3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。
ArrayList
该类是实现了List接口,实现了可变大小的数组,随机访问和遍历元素是,提供跟好的性能,该类是非同步的
,在多线程的情况下不要使用。
显示集合中的元素:
实例:
import java.util.*;
public class Test{
public static void main (String [] args) {
List <String> lsit= new ArrayList<String>();
lsit.add("Hello");
list.add("Word");
//第一种遍历方法使用foreach遍历
for(String li :list){
System.out.println(li);
}
//第二种把链表变为数组相关内容进行遍历
String [] strArray= new String[list.size()];
list.toArray(strArray);
for(int i = 0 ; i<strArray.length;i++){
System.out.println(strArray[i]);
}
//第三种遍历 使用迭代器进行相关遍历
Iterator<String> ite=list.iterator();
while(ite.hasNext()){
//判断下一个元素之后有值
System.out.println(ite.next());
}
}
遍历 Map
import java.util.*;
public class Test{
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");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and 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("key= " + 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("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}
}