黑马程序员---集合小结

Collections和Collection有什么区别?

      Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。     它有两个常用的子接口,     List:对元素都有定义索引。有序的。可以重复元素。  

  Set:不可以重复元素。无序。 

  1. //代码示例:   
  2.   
  3. import java.util.List;   
  4. import java.util.ArrayList;   
  5.   
  6. public class Test{   
  7.   
  8. public static void main(String[] args){   
  9.   
  10. ArrayList al = new ArrayList();   
  11.   
  12. al.add("黑马程序员A");//添加了一个元素   
  13.   
  14. al.add("黑马程序员B");   
  15.   
  16. al.add("黑马程序员C");  
  17.   
  18.   
  19. al.add("黑马程序员D");  
  20.   
  21.   
  22. System.out.println(al.get(1));   
  23.   
  24. al.remove("黑马程序员D");//删除一个元素   
  25.   
  26. sop(al.size());//打印下集合的长度 结果为3.因为删了一个   
  27.   
  28. al.clear();//清空集合   
  29.   
  30. sop(al.contains("黑马程序员C"));   
  31.   
  32. sop(al.isEmpty);   
  33.   
  34. method();   
  35.   
  36. }   
  37.   
  38. public static void method(){   
  39.   
  40. List list1 = new ArrayList();   
  41.   
  42.   
  43. list1.add("黑马程序员A");   
  44.   
  45. list1.add("黑马程序员B");   
  46.   
  47. list1.add("黑马程序员C");  
  48.   
  49.   
  50. list1.add("黑马程序员D");   
  51.   
  52. List list2 = new ArrayList();   
  53.   
  54.   
  55. list2.add("黑马程序员A");   
  56.   
  57. list2.add("黑马程序员B");   
  58.   
  59. list2.add("黑马程序员E");  
  60.   
  61.   
  62. list2.add("黑马程序员F");   
  63.   
  64.   
  65.   
  66. list1.removeAll(list2);//删除交集。拿list1的元素跟list2的元素比,如果相同就删除。调用父类的方法   
  67.   
  68. sop(list1);   
  69.   
  70. }   
  71.   
  72. public static void sop(Object obj){   
  73.   
  74. System.out.println(obj);   
  75.   
  76. }   
  77.   
  78. }   
  79. //注: Test.java使用了未经检查或不安全的操作。  
  80. //注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。  
//代码示例: 

import java.util.List; 
import java.util.ArrayList; 

public class Test{ 

public static void main(String[] args){ 

ArrayList al = new ArrayList(); 

al.add("黑马程序员A");//添加了一个元素 

al.add("黑马程序员B"); 

al.add("黑马程序员C");


al.add("黑马程序员D");


System.out.println(al.get(1)); 

al.remove("黑马程序员D");//删除一个元素 

sop(al.size());//打印下集合的长度 结果为3.因为删了一个 

al.clear();//清空集合 

sop(al.contains("黑马程序员C")); 

sop(al.isEmpty); 

method(); 

} 

public static void method(){ 

List list1 = new ArrayList(); 


list1.add("黑马程序员A"); 

list1.add("黑马程序员B"); 

list1.add("黑马程序员C");


list1.add("黑马程序员D"); 

List list2 = new ArrayList(); 


list2.add("黑马程序员A"); 

list2.add("黑马程序员B"); 

list2.add("黑马程序员E");


list2.add("黑马程序员F"); 



list1.removeAll(list2);//删除交集。拿list1的元素跟list2的元素比,如果相同就删除。调用父类的方法 

sop(list1); 

} 

public static void sop(Object obj){ 

System.out.println(obj); 

} 

} 
//注: Test.java使用了未经检查或不安全的操作。
//注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

 

 
  Collections是集合框架中的一个工具类。该类中的方法都是静态的。
  提供的方法中有可以对List集合进行排序,二分查找等方法。
  通常常用的集合都是线程不安全的。因为要提高效率。
  如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。
 
  List和Set有什么异同点?
 
  List:元素是有序的,元素可以重复
 
  ArrayList  1.数组实现  2.增长50%  3.线程不安全  4.遍历效率比较高
  LinkedList 1.链表实现  2.线程不安全  3.插入与删除效率高  4.方便操作头尾元素
  Vector(了解)  1.数组实现  2.增长100% 3.线程安全    
 
  Set集合:元素是有序的,元素值唯一,不允许重复。
  
  HashSet   1.hash表实现  2.线程不安全  3.效率比较高  4.维护元素唯一性是通过元素的hashCode与equals
  LinkedHashSet  添加与取出的顺序一致的。
  TreeSet 1.二叉树  2.线程不安全 3.效率比较低,因为它可以进行排序。 4.维护元素唯一性是通过自然顺序(Comparable的compareTo)或比较器(Comparator的compare方法)
 
  Map有哪些常用类,各有什么特点?
 
  Map与Collection在集合框架中属并列存在
  Map存储的是键值对Map存储元素使用put方法,Collection使用add方法
  Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素
  Map集合中键要保证唯一性
  取出map集合中所有元素的方式一:keySet()方法。
  可以将map集合中的键都取出存放到set集合中。对set集合进行迭代。迭代完成,再通过get方法对获取到的键进行值的获取。
 
  Set keySet = map.keySet(); 
 
  Iterator it = keySet.iterator(); 
 
  while(it.hasNext()) 
 
     Object key = it.next(); 
 
      Object value = map.get(key);
   
      System.out.println(key+":"+value);
  }
 --------------------------------------------------------
  取出map集合中所有元素的方式二:entrySet()方法。
 
  Set<map.entry<String,String>> entrySet = map.entrySet(); 
 
  Iterator<map.entry<String,String>> it = entrySet.iterator();
 
  while(it.hasNext()) { 
  Map.Entry me = (Map.Entry)it.next(); 
  System.out.println(me.getKey()+"::::"+me.getValue()); 
  }
 
  常用类有及特点:
 
  Hashtable:线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。
  HashMap:线程不安全,速度快,允许存放null键,null值。

  TreeMap:对键进行排序,排序原理与TreeSet相同。

小小的小结了下,欢迎留言补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值