黑马程序员--集合小结


 

Collections和Collection有什么区别?

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

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

//代码示例: 

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、付费专栏及课程。

余额充值