A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 芒果小姐 中级黑马   /  2016-7-27 11:11  /  1588 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么时候使用集合~

8 个回复

倒序浏览
由于我们使用的是面向对象语言,所以,我们要经常使用对象。而很多时候,我们可能需要使用很的对象,这个时候,我们就只能使用以前讲过的数组进行存储了,而数组的特点是长度固定。这样的话就不适合变化的数据。所以,java重新提供了一种容器,用于存储对象,这种容器叫集合
回复 使用道具 举报
首先先了解数组和集合的区别,数组长度在初始化后就不可改变,可以存储基础数据类型和引用数据类型,而集合只能存储引用数据类型,长度可变,当我们想要把若干个元素存入数组却发现我们再想存的时候数组长度已经固定了需要重新定义,太麻烦,这个时候集合就派上用场了,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少。且集合是一个很宽的概念,集合体系中有不同类型的集合,个人觉得功能更广泛。
集合分为单列集合和双列集合,单列集合有List和Set,List存取有序,有索引,可以存储重复元素;Set存取无序,无索引,不能存储重复。
List中ArrayList底层为数组,查询快,增删慢,线程不安全,效率高
LinkedList底层为链表,查询慢,增删快,线程不安全,效率高
Vector底层为数组,查询慢,增删慢,线程安全,JDK1.2开始被ArrayList替代

Set中HashSet底层为哈希表,线程不安全,我们可以重写HashCode和equals两个方法来保证元素的唯一性
TreeSet底层为二叉树,TreeSet是会将元素自动排序且唯一的。元素具备比较性时则使用自然排序,实现Comparable接口,重写compareTo方法;不具备比较性时,则使用比较器比较,实现Compartor接口,重写compare方法,一般在创建集合对象时以匿名内部类形式创建
其实这些都是概念,当然还有双列集合,懒得打了贴上来好了
|--Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
        |--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
        |--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
        |--TreeMap:底层是二叉树数据结构。不同步。可以用于给map集合中的键进行排序。
        |--和Set很像。其实,Set底层就是使用了Map集合
回复 使用道具 举报
坚持几天就会用到了
回复 使用道具 举报
觅离 发表于 2016-7-27 23:04
由于我们使用的是面向对象语言,所以,我们要经常使用对象。而很多时候,我们可能需要使用很的对象,这个时 ...

嗯嗯~学习啦
回复 使用道具 举报
rockphoenix 发表于 2016-7-28 00:03
首先先了解数组和集合的区别,数组长度在初始化后就不可改变,可以存储基础数据类型和引用数据类型,而集合 ...

恩呐 谢谢咯~ 学习啦
回复 使用道具 举报
想用的时候就用啊
回复 使用道具 举报
路过。。。帮水
回复 使用道具 举报
想用就用,哈哈哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马