Java集合框架的知识总结(1)

Java集合框架的知识总结(1)

所有集合类都位于java.util包下。集合中只能保存对象(保存对象的引用变量)。

 Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。

 总的架构如下,非常重要,包含继承关系,实现的分类,

Collection接口: 

       Set接口:

            HashSet具体类
            LinkedHashSet具体类
            TreeSet具体类
       List接口:              ArrayList具体类
            LinkedList具体类
            向量类Vector具体类
            Stack具体类
Map接口:        HashMap类
       LinkedHashMap类
       TreeMap类                 

 

Set和List接口是Collection接口派生的两个子接口。

Map实现类用于保存具有映射关系的数据(key-value)。

 Collection接口,它是处理对象集合的根接口,提供了一些公用方法,size,Iterator,add,remove什么的

Set、List和Map可以看做集合的三大类。

     List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。

     Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。

     Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。

Vector 和ArrayList的异同

  实现原理,功能相同,可以互用

  主要区别:

  Vector线程安全,ArrayList重速度轻安全,线程非安全。长度需增长时,vector默认增长一倍。ArrayList增长50%

Hashtable和HashMap的异同

  实现原理,功能相同,可以互用

  主要区别:

  Hashtable继承Dictionary类,HashMap实现Map接口,Hashtable线程安全,HashMap线程非安全

  Hashtable不允许null值,HashMap允许null值

public class TestK {

 public static void main(String [] args){  

 Collection col =new ArrayList();

  //增加元素  

  col.add(1);

  col.add(2);

  System.out.println(col);  

  //集合长度   System.out.println(col.size());

  //可重复,有序(不唯一,有序)

  List<String> list =new ArrayList<String>();

  list.add("aaa");

  list.add("bbb");  

  list.add("aaa");  

  //向指定位置,插入元素  

  list.add(1,"ccc");

  String val= list.get(0);   

  //删除指定位置值(返回删除掉的值)

 c.remove(6);

  //是否包含指定元素   

  boolean flag=list.contains("bbb");   

  System.out.println(list);   

  System.out.println(val);

  System.out.println(flag);   

  }

}

ArrayList和Linkedlist的区别:

  A:都实现了List

  B:ArrayList是可变长数组方式实现,查询效率高,LinkedList是链接方式实现,增加和删除效率高;

 Map常用方法(键值对方式存储数据)

Map<Key,Value> maps =new HashMap<Key,Value>();

 public class TestMap {
 public static void main(String [] args){
  //key-->value
  //名字-->企鹅
  Map<String,Penguin> maps=new HashMap<String,Penguin>();
  //增加
  Penguin p=new Penguin();
  p.setName("欧欧");
  p.setSex("男");
  maps.put("欧欧",p);
  //取值
  //maps.get(key)
  Penguin p1=maps.get("欧欧");
  p1.print();
//  System.out.println(maps);
  //大小
  System.out.println(maps.size());
  //是否包含key
  System.out.println(maps.containsKey("欧欧"));
  //删除
  maps.remove("欧欧");
  
 }
}

 注意:key是唯一的如果重复那么后面的会覆盖前面的,value是可以重复的


 

原文地址:https://www.cnblogs.com/xuling123/p/6672541.html