JAVA集合类的剖析

来源:互联网 发布:强力安卓数据恢复精灵 编辑:程序博客网 时间:2024/06/06 20:02
    Java的集合类是由java.util包所提供的,我们将这些集合类称为容器,所谓容器,就是用来存放东西的,存钱罐是用来存钱的,首饰盒是用来存放首饰的,而我们集合类则是用来存放数据的,说到存放数据,可能大家首先想到的就是我们的数组。

    在Java编程中,我们如果想将多个数据存放到一个“容器”中,我们首先会想到数组,因为我们学习Java的过程中最早接触的“容器”就是数组。当然,使用数组存放数据是我们不错的选择,但是我们也知道,数组存放数据是有局限性的,在我们选择数组存放数据的时候必须事先明确知道我们将要存放的数据的量,如果数据量大于数据的存放空间那么会造成越界(多余的数据无法存放进去,程序编译报错),如果数据量小于数组的存放空间那么同样会造成资源浪费。

    int a[] = new int[5];            a[4] = 3;            System.out.println(a[4]);//数组的使用方法

   如果我们现在需要保存的数据是在不断变化的呢?这个时候Java的集合类就可以帮我们解决这个问题。集合最早的时候是我们数学中的一个概念,如果大家理解数学中集合的意义,那么在学习JAVA集合的过程中会事半功倍。

   首先,我们来认识一下Java的集合类:

1.JAVA的集合类中我们最常用到的是Map集合、List集合、Set集合。

2.上述三个集合,List集合与Set集合都继承了collection接口。
   其中,List集合中的元素允许重复,各元素排列的顺序就是元素插入的顺序。
             Set集合中的元素不允许重复,元素不按特定的方式排序,只是简单地将元素加入集合中。
3.Map集合是一组成对的“键值对”对象。所谓“键值对”对象,就是指两两对应的元素,比如说有一个箱子,箱子上有一把锁(默认为值),而对应的我们如果想打开这个箱子就需要能打开锁的钥匙(默认为键),所以键就是我们获取值得钥匙,它们都是成对存在的,不能存在第三者(同一个锁不能有第二把钥匙能够打开)。

List集合类的创建:
    List接口的常用实现类有ArrayList与LinkedList

ArrayList<String>  list = new ArrayList<String>();LinkedList<String> linked = new LinkedList<String>();
(1)ArrayList类实现了可变的数组,可以存放所有的元素包括null元素。可以根据索引位置对集合进行快速的随机访问。
(2)LinkedList类采用的是链表结构保存对象,这种结构便于向集合插入或者删除对象。
(3)迭代器(Iterator),它可以遍历集合中的元素

        迭代器的使用:

    ArrayList<String>  list = new ArrayList<String>();                    list.add("a");                    list.add("b");                    list.add("c");                    list.add("d");                    Iterator<String> it = list.iterator();                    while (it.hasNext()) {//判断集合中是否还有下一个元素                            String string = it.next();//获取集合中的元素                            System.out.println(string);                    }


Set集合类的创建:
    Set接口常用的实现类有HashSet类与TreeSet类

TreeSet<String> set = new TreeSet<String>();HashSet set = new HashSet();

(1)HashSet类由哈希表支持。他不保证Set的迭代顺序,此类允许使用Null元素。
(2)TreeSet类不仅实现了Set接口,还实现了java.util.SortedSet接口,因此TreeSet集合可以在遍历集合时按照自然顺序递增排序,同时也可以按照指定比较器递增排序,也就是说可以使用比较器对TreeSet集合中的对象进行排序。

Map集合类的创建:
    Map接口常用的实现类有HashMap和TreeMap

Map<String, String> map = new HashMap<String, String>();TreeMap<String, String> map = new TreeMap<String, String>();

(1)HashMap类基于哈希表的Map接口实现,可以使用Null值和Null键但是必须保证键的唯一性,也就是说钥匙有且只能有一把,此类不保证映射的顺序,也不保证该顺序恒久不变.
(2)TreeMap类不仅实现Map接口,同时还实现了java.util.SortedMap接口,因此集合中的映射关系有一定的顺序,因为TreeMap集合中映射关系是根据一定顺序排列的,所以不允许键为Null.

上面就是小猪的一些个人总结与见解,希望能给大家带来帮助,如果有错误的地方希望大家及时指正我也会积极修改,如果有疑问的朋友或者希望共同学习进步的朋友可以添加扣群:378303386 在这里有着一群和你一样求知的小伙伴们等待着共同讨论进步。也可以添加我扣:2714491282