java 集合框架

来源:互联网 发布:fp系列编程手册 编辑:程序博客网 时间:2024/05/16 09:35

集合框架

  • collection 是集合类的上级接口 实现他的集合是List , Set。
  • collections 是集合类的帮助类,它提供了一系列针对集合操作的各种帮助的静态方法( 如:排序,搜素,线程安全等)。

collection
|-List
| |-LinkedList
| |-ArrayList
| |-Vector
|-Set
| |-HashSet
| |-TreeSet

|Map
| |-HashMap

List

  • 其实现类是ArrayList 和LinkedList 特点:线性存储 ,可以有重复数据, 有序,可以为空。

ArrayList 与LinkedList的区别

  • ArrayList 其底层实现是靠数组实现 查询,修改 速度快。
  • LinkedList 其底层实现是链表实现,添加,删除 速度快。
  • LinkedList比ArrayList更加占内存,因为LinkedList为每一个节点都存储了两个引用,一个指向前一个元素指向后一个元素。

List 遍历

public class Test{ public static void main(String[] args) {     List<String> list=new ArrayList<String>();     list.add("Hello");     list.add("World");     //第一种遍历方法使用foreach遍历List     for (String str : list) {                    System.out.println(str);     }     //第二种遍历,把链表变为数组相关的内容进行遍历     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());     } }}

Set

  • 其实现类为HashSet 和TreeSet
  • Set 集合特点: 无序,不允许重复,不可为空

遍历Set

//迭代遍历Set<String> set=new HashSet<>();Iterator<String> iter=set.iterator();while(iter.hasNext()){  String str=iter.next();  System.out.println(str);}//for循环遍历for(String str: set){  System.out.println(str);}

List 和Set 的区别

  • Set 集合特点: 无序,不允许重复,List集合特点:有序的,可以重复。

Map

  • 特点:无序 存储键值对(Key: value)其健不可为空,不可重复,其值可为空,可重复

遍历map

 Map<String, String> map = new HashMap<String, String>();      map.put("1", "v1");      map.put("2", "v2");      map.put("3", "v3");//第一种 for (String key : map.keySet()) {       System.out.println("key= "+ key + " and value= " +        map.get(key));      }//使用迭代器 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());      }//第三种    常用     for (Map.Entry<String, String> entry : map.entrySet()) {       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());      }//第四种 for (String v : map.values()) {       System.out.println("value= " + v);      }