集合

集合:

为何使用???:我们都知道可以用数组来保存对象,但是当不知道要保存的对象的个数时,就用到了集合;

是什么???:JDK提供了一些特殊的类,存放在java.util包下,这些类可以存储re任意类型的对象,且长度可变;注意导包;

怎样使用???:

    集合按照存储结构分为两大类:单列集合(Collection)和 双列集合(Map);{集合和数组一样,索引都是从0开始的}

简介:(1)Collection:用于存储一系列符合某种规律的元素,他有两个子接口  List  和  Set   ;

                List主要特点是元素有序,元素可重复;其实现类主要有ArrayList  和 LinkedList ;

                Set 的特点是元素无序且不可重复;其主要实现类有 HashSe t和 TreeSet ;

          (2)Map :双列集合类的接口,用于存储具有键值对(key-value)映射关系的元素;其中每个元素都包含一对键值对;

                          一般都是通过map元素的key来找到value的;他的接口实现类主要有 HashMap 和 TreeMap ;

 

单列集合常用方法:

boolean add(Object obj);       //向集合中添加一个元素
boolean addAll(Collection c);  //将Collection中的所有元素都添加到集合中
boolean remove(Object obj);    //移除指定元素
void clear();            //清除集合中所有的数据
boolean isEmpty();       //判断该集合是否为空
Iterator iterator();     //返回在该集合的元素上进行迭代的迭代器,用于遍历该集合的所有元素
int size();              //返回集合的元素个数
Iterator用法:
   Iterator it=集合对象名.iterator();
   while(it.hasNext())
   {
       System.out.printf(it.next());   //遍历输出集合元素 
   }

foreach用法:
    for(类型名  变量名:对象名)
   {
        System.out.printf(it.next());   //遍历输出集合元素 
    }


区别:foreach循环用起来比较简洁,但是他只能访问数组或集合中的数据,而不能对数组或者集合中的数据进行操作

 

List:  

         (1)ArrayLis:是List接口的一个实现类,在该类内部封装了一个长度可变的数组对象,当数据过多时,ArrayList会分配更大                                空间的数组来存储数据,因此,ArrayList可以看成一个长度可变的数组;

                              优点:便于查找;通过索引来访问元素较快捷;

                              缺点:在增加或删除元素时或创建新的数组,效率较低;不适合做大量的增删操作;

      ( 2)LinkedList:原理:在其内部有一个双向循环链表;所以其增删效率较高,

List集合常用方法:

void add(int index,Object obj);  //将元素放在集合索引为index的地方;
Object get(int index);          //返回索引为index的元素;
Object remove(int index);     //删除索引为index的元素,并返回这个元素;

 Set:

        (1)HashSet:根据对象的哈希值来确定元素在集合中的存储位置:具有良好的存取和查询性能;存储的元素不可重复;

      (2)TreeSet:以平衡二叉树的方式来存储元素;可以实现对集合中的元素排序;(平衡二叉树就是存储的元素按照大小排                                序,一个节点左子树比该节点小,同时它的右节点比该节点大);

 

 

 Map:

  常用方法:

void put(Object key,Object value);   //将指定的值和键相关联;
Object get(Object key);       //返回指定键所映射的值,若该键不包含映射关系,则返回null;
Set keySet();          //返回此映射中包含键的Set视图;

 (1)HashMap:用于存储键值映射关系;不能存储值相同的值;当存储时出现相同的键不同的值时,值会被覆盖(键相同,值                              覆盖

  (2)TreeMap: 用于存储键值映射关系,不能存储相同的键;

使用方法:


创建集合: Map map=new HashMap();/TreeMap map =new TreeMap();
存储数据: map.put(key,value);……
获取键的集合:  Set keySet=map.keySet();
遍历输出集合:  Iterator it=ketSet.iterator();
               while(it.hasNext())
                {
                      System.out.printf();
                }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值