Java中集合的知识——Map和Iterable


那么,之前在公司工作了这么久,一直在找个机会来全面的对Java这门语言做一个系统的分析与概况,由于各种原因,一直耽误到了现在,过完年终于有时间了,于是写下了这片文章,想入门Java的同学们,愿这片Java集合文章能帮助到你们;大佬降临,还望指出不足,十分十分感谢!


我们知道,在Java语言中,集合是一个很重要的知识点;它就是一个容器,它无时无刻都存在,无时无刻都要用到它;首先集合是将多个元素组成一个单元的对象。集合类的作用是用于储存、检索和操纵数据,以及将数据从一个方法传输至另一个方法;它最主要的任务就是存储对象,储存数据。

目前我所了解的是Java集合分为俩大块: Map集合Iterable集合以及其子子孙孙后代

一、Map大集合

Map集合是一个大接口,被HashMapTreeMapLinkedHashMap三大集合所实现,这三大集合都是以键值对的形式来存储对象,以下为HashMapTreeMapLinkedHashMap三大集合的区别

1.HashSet是Map集合中速度最快的,用时间差得出,代码如下



    HashSet hashSet = new HashSet() ;

    TreeSet treeSet = new TreeSet () ;

    LinkedHashSet linkedHashSet = new LinkedHashSet () ;

    long start=System.currentTimeMillis();
    
    for(int i=0; i<500000; i++){

      //hashSet.add(i);//速度最快

      //linkedHashSet.add(i);//速度中等
   
      treeSet.add;//速度最慢
    }
      System.out.println(System.currentTimeMi11ic()-start);

2.TreeSet是Map集合中有自动排序功能,这个大家可以去编译器自己试试,挺简单的,就不提供代码

3.LinkedHashMap是Map集合中插入的顺序和它输出的顺序也是一样的,此处省略代码

4.那三大集合区别在哪呢,上面三大点就是其最大的区别,总结:

①Map中要插入、删除、定位元素咱们就用HashMap;

②Map中要用自动排序的,就用TreeMap;

③Map中要先进先出的就用LinkedMap。

二、Iterable大集合

这个集合就挺有趣的,Iterable大集合那真是可谓子孙满堂呐,Iterable大集合下面有个儿子叫Collection接口,Collection集合下面又由三个儿子,分别是List集合Set集合Queue集合

1.Iterable大集合

实现Iterable接口的类呢,可以增强for循环,也就是foreach;

②实现Iterable接口的集合类必须提供一个名为[迭代器]Iterator()的方法,该方法的返回值为Iterator;

2.Collection(java.util包)中集合

不是以键值对形式存储数据,其中的方法自己可以去试试,但是有个方法我得着重的说明,那就是remove(Object)这个方法,为什么呢?因为它爸爸Iterable大集合也有这个方法remove()。那么区别在哪呢?以下几点:

①有无参数:Collectionremove(Object)是要求带参数的,Iterableremove()就不要带了,如果哈,还是儿子的要求多,屁事多;

②性能方面:这个方面果然姜还是老的辣,Iterableremove()要比Collectionremove(Object)强,因为Collectionremove(Object)方法必须首先找出要被删除的项,而它又是单练表结构查询,单链表查询效率低,而Iterableremove()要结合next()方法使用,效率要高;

③容错方面:只要记得这点,反正儿子要比老爸皮一点,吃的亏没得老爸多,所以这方面Iterableremove()还是更胜一筹。

3.ListSetQueue三个兄弟集合

List集合,可以添加重复元素,有顺序,而且下面又有ArrayList,LinkedList,Vector三个集合实现类

a.ArrayListgetset方法性能比较高;

b.LinkedList:新项的插入和现有项的删除性能高;

c.VectorVector用了线程同步技术,安全性高,但是性能就比较差了。

Set集合:不可以添加重复元素,没有顺序,而且下面又有HashSet,TreeSet,LinkedHashSet三个集合实现类,和Map集合很像

a.HashSet:速度最快,没有什么明显的顺序保存元素,集合中元素中可以为NULL,但是只能放一个NULL;

b.TreeSet:按照比较结果的升序保存对象;

c.LinkedHashSet:按照被添加的顺序保存对象。

Queue集合:这个本人在工作中并没有用到很多,所以知道它是先进先出的模式,如有大神知道,请求指教!

那么今天的集合知识就分享到这里,还望大佬指出不足指出,希望通过这篇文章让入门Java的小伙伴们能够对Java基础知识有不一样的认识,十分感谢!!!


 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值