Collection接口
特征:存储一组不唯一、无序的对象
常用方法:
1.添加元素:boolean add(Object o)
2.将集合c添加到指定集合:boolean addAll(Collection c)
3.是否包含指定元素:boolean contains(Object o)
4.清空:void1 clear()
5.删除元素:boolean remove(Object o)
5.返回长度:int size()
集合遍历
Iterator:
特征:遍历Collection集合元素的统一编程接口
常用方法:
1.是否存在下一个:boolean hasNext()
2.返回下一个元素:Object next()
3.移除元素:void remove()
for:适用于有序集合,如ArrayList、LinkedList等
foreach:适用于所有集合
list
特征:继承Collection接口,储存一组不唯一、有序的对象
实现类:
ArrayList:
底层是数组结构
查询效率高,添加删除率低
LinkedList:
底层是双向链表
插入、删除数据效率高,不便于快捷访问数据
扩充的方法:
1.根据索引获取数据:Object get(int index)
2.修改数据: Object set(int index,Object element)
3.其他与索引相关的操作方法
Set:
特征:继承Collection接口,储存一组唯一、无序的对象
实现类:HashSet
Map:
特征:储存一组成对的键-值对象,提供key到value的映射
key:不要求有序,不允许重复
value:不要求有序,但允许重复
常用方法:
1.添加数据:Object put(Object key,Object value)
2.根据键返回值:Object get(Object key)
3.返回键的集合:Set keyset()
4.返回值的集合:Collection values()
泛型集合:
1.可以约束集合中元素的类型
2.保障类型安全
3.常用泛型集合:ArrayList<K,V>,HashMap<K,V>等
代码:
package ch04;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
public class ee {
public static void main(String[] arys)
{
ee1();
}
public static void ee1()
{
List<String> fruit = new ArrayList<String>();
fruit.add("苹果");
fruit.add("梨子");
System.out.println("集合长度:"+fruit.size());
fruit.add("梨子");
fruit.add("香蕉");
fruit.add("榴莲");
fruit.set(1,"桃子");
fruit.add(1,"芒果");//在指定下标插入数据,才方法属于List接口,所以要声明成List类型,或者子类
List fruit3 = fruit.subList(2,4);//从集中的指定位置区间,截取并生成新的集合对象
System.out.println("fruit3集合内容"+fruit3.toString());
//fruit.add(5);
System.out.println("集合长度:"+fruit.size());
//删除
fruit.remove("香蕉");//根据内容删除,不管位置
//fruit.remove(5);//根据位置删除,不管内容
//判断是否包含
System.out.println("是否包含苹果:"+ fruit.contains("苹果"));
System.out.println("fruit集合内容"+fruit.toString());
//便利集合方式1-使用迭代器
Iterator it = fruit.iterator();
while(it.hasNext())
{
String fru = (String)it.next();
System.out.println(fru);
}
//便利集合方式2-使用foreach
for(Object object : fruit)
{
String fru = (String)object;
System.out.println(fru);
}
Collection fruit2 = new HashSet();
fruit2.add("苹果");
fruit2.add("榴莲");
System.out.println("fruit2集合内容:"+fruit2.toString());
System.out.println("fruit中完全包含fruit2吗?"+fruit.containsAll(fruit2));
}
}
Hashtable | HashMap |
---|---|
继承自Dictionary类 | Java1.2引进的Map interface的一个实现 |
线程安全 | 线程不安全 |
不允许有null的键和值 | 允许有null的键和值 |
效率稍低 | 效率稍高 |
实际开发中HashMap用的多