Collection 集合类
java.util包中提供了一些集合类,这些集合类又称为容器;
集合类和数组的区别在于:
1.数组的长度是固定的,集合的长度是可变的;
2.数组是来存放基本类型的数据,集合用来存放对象的引用;

Collection接口是层次是根接口。构成Collection的单位称为元素。Collection接口通常不能直接使用,但该接口提供了添加元素,删除元素,管理数据的方法,由于List接口与Set接口都继承了Collection接口,因此这些方法都是通用的。
add(E e) 将指定的对象添加到集合中
remove(Object o) 将指定的对象从该集合中删除
isEmpty() 用于判断当前集合是否为空
iterator() 返回在此Collection的元素上进行迭代的迭代器
size() 返回集合中元素个数
遍历元素
iterator迭代器
Collection接口中iterator()方法可在此返回迭代器。
public static void main(String[] args) {
Collection<String> list=new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
Iterator<String> it =list.iterator();
while (it.hasNext()){
//it.next() 返回的方法对象时Object
System.out.println(it.next());
}
}
for
for(String s:list){
System.out.println(s);
}
List<String> list1=new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add("c");
list1.add("d");
for(int i=0;i<list1.size();i++){
System.out.println(list1.get(i));
}
Arraylist
Arraylist类实现了可变的数组,允许保存所有元素,包括null;
优点:可以根据索引的位置对集合进行快速的随机访问;
缺点:向指定的索引位置插入对象或删除对象比较慢;
LinkedList
LinkedList采用链表结构保存对象。
优点:可以高速的对集合进行插入和删除对象;
缺点:随机访问集合中的对象效率较低;
Set
Set集合中的对象不按照特定的方式排序,只是简单的把对象加入到集合中,但集合中不能包含重复对象。
HashSet
HashSet由哈希表支持,他不保证Set的迭代顺序,特别是它不保证该顺序永恒不变,此类允许使用null元素。
TreeSet
TreeSet 不仅实现了Set接口,还实现了SorteSet接口,因此Set结合在便利集合时按照自然顺序递增排序,也可以按照指定的比较器递增排序。
Map
Map集合没有继承Collection接口,其提供的是key到value的映射。Map中不能包含相同的key,每个key只能映射一个value。
put(K key,V value) 向集合中添加元素;
containsKey(Object key) 如果包含指定的key,返回true;
containsValue(Object value) 如果包含指定的value,返回true;
get(Object key) 如果指定的key存在,则返回该对象对应的值,否则返回null;
keySet() 返回该集合中的所有key 形成的Set集合;
values() 返回集合中所有对应值对象形成的Collection集合;
public static void main(String[] args) {
Map<String,String> map = new HashMap<>(); // 创建Map实例
map.put("01", "A"); // 向集合中添加对象
map.put("02", "B");
Set<String> set = map.keySet(); // 构建Map集合中所有key对象的集合
Iterator<String> it = set.iterator(); // 创建集合迭代器
System.out.println("key集合中的元素:");
while (it.hasNext()) { // 遍历集合
System.out.println(it.next());
}
Collection<String> coll = map.values(); // 构建Map集合中所有values值集合
it = coll.iterator();
System.out.println("values集合中的元素:");
while (it.hasNext()) { // 遍历集合
System.out.println(it.next());
}
HashMap
HashMap是由哈希表的Map接口实现的,此实现提供所有可选的映射操作,并允许使用NULL,NULL,但是必须保证键的唯一性,此类不能保证顺序;
TreeMap
TreeMap不仅实现了Map接口,还实现了SotredMap接口,所以集合中映射关系有一定的顺序,也因此不允许键为null,性能比HashMap 差。
网友评论