天天看点

集合

  

  集合和数组比较像,也是一种,容器但是有很大区别

  数组的长度在初始化时时定下来的,不可变了,那么以后如果项目需求改变,原本需要10个学生信息,现在要20个,那怎么办?

  所以就引出了集合

  集合的最根上的接口是collection,其子接口有list和set。

  集合和数组差不多,但是你可以不需要定义它的长度,你想什么时候往里面加元素,删除元素都可以。

  

  Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:

 1)  Collection 。 一组对立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set 不能有重复元素。

 2)  Map 。 一组 成对的“键值对”对象。初看起来这似乎应该是一个Collection ,其元素是成对的对象,但是这样的设计实现起来太笨拙了,于是我们将Map明确的提取出来形成  一个独立的概念。另一方面,如果使用Collection 表示Map的部分内容,会便于查看此部分内容。因此Map一样容易扩展成多维Map ,无需增加新的概念,只要让Map中的键  值对的每个“值”也是一个Map即可。 

  Collection和Map的区别在于容器中每个位置保存的元素个数。Collection 每个位置只能保存一个元素(对象)。此类容器包括:List ,它以特定的顺序保存一组元素;Set 则  是元素不能重复。 

  Map保存的是“键值对”,就像一个小型数据库。我们可以通过“键”找到该键对应的“值”。 

  ?     Collection – 对象之间没有指定的顺序,允许重复元素。 

  ?     Set –  对象之间没有指定的顺序,不允许重复元素 ?     List–  对象之间有指定的顺序,允许重复元素,  并引入位置下标。

  ?     Map –  接口用于保存关键字(Key)和数值(Value)的集

合,集合中的每个对象加入时都提供数值和关键字。Map 接口既不继承 Set 也不继承 Collection。  

  List、Set、Map共同的实现基础是Object数组

import java.util.*; 

public class CollectionToArray {  

  public static void main(String[] args) {     

    Collection collection1=new ArrayList();  //创建一个集合对象  

    collection1.add("000");          //添加对象到Collection集合中       

    collection1.add("111");   

    collection1.add("222"); 

    System.out.println("集合collection1的大小:"+collection1.size());  

    System.out.println("集合collection1的内容:"+collection1);   

    collection1.remove("000");//从集合collection1中移除掉 "000" 这个对象   

    System.out.println("集合collection1移除 000 后的内容:"+collection1);   

    System.out.println("集合collection1中是否包含000 :"+collection1.contains("000"));   

    System.out.println("集合collection1中是否包含111

:"+collection1.contains("111"));   

    Collection collection2=new ArrayList();   

    collection2.addAll(collection1);        //将collection1 集合中的元素全部都加到collection2中   

    System.out.println("集合collection2的内容:"+collection2);   

    collection2.clear();//清空集合 collection1 中的元素   

    System.out.println("集合collection2是否为空 :"+collection2.isEmpty());           //将集合collection1转化为数组

            

             Object s[]= collection1.toArray();   

    for(int i=0;i<s.length;i++){    System.out.println(s[i]);   

    }  

  }

 } 

运行结果为: 

集合collection1的大小:3 

集合collection1的内容:[000, 111, 222] 

集合collection1移除 000 后的内容:[111, 222] 

集合collection1中是否包含000 :false 

集合collection1中是否包含111 :true

集合collection2的内容:[111, 222] 集合collection2是否为空 :true

111

222 

这是一个百度文库的,感觉看了比较易懂,留做笔记。