八、集合框架

一、java什么是集合。

其实集合跟数组差不多,只不过长度是可以变化的。

List :有序的,可以通过下标访问读取

Map:无序的,是通过键值对存取

 Set:就是一个无序集合

它们的基本都实现Collection

1.常用集合:

List-->ArrayList

List-->LinkedList



二、集合跟数组有什么区别。

ArrayList和LinkedList的大致区别如下:

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

https://www.cnblogs.com/soundcode/p/6294174.html

三、常用集合Map

List集合跟Map集合差别在哪?

List:它是根据下标来进行添加和读取,是有顺序的。

Map:是根据键值对来添加和读取,Key value


HashMap和TreeMap的区别

HashMap:数组方式存储key/value,线程非安全,允许null作为key和value,key不可以重复,value允许重复,不保证元素迭代顺序是按照插入时的顺序,key的hash值是先计算key的hashcode值,然后再进行计算,每次容量扩容会重新计算所以key的hash值,会消耗资源,要求key必须重写equals和hashcode方法 。

默认初始容量16,加载因子0.75,扩容为旧容量乘2,查找元素快,如果key一样则比较value,如果value不一样,则按照链表结构存储value,就是一个key后面有多个value;

TreeMap:基于红黑二叉树的NavigableMap的实现,线程非安全,不允许null,key不可以重复,value允许重复,存入TreeMap的元素应当实现Comparable接口或者实现Comparator接口,会按照排序后的顺序迭代元素,两个相比较的key不得抛出classCastException。主要用于存入元素的时候对元素进行自动排序,迭代输出的时候就按排序顺序输出 。

作业思考

1、

动态数组的数据结构

链表的数据结构

2、Map有几种表现形式,它们之间有什么差别?

作业1:

第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10;

分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判断生成的字符串是否包含重复,在判断长度是不是10,等等.

*2.其实这题我们可以培养一个习惯,大问题分解小问题解决.

(1).10个字符串,我们先产生一个10个字符不重复的字符串,

(2).怎么去重复呢?集合中的HashSet就可以,这题不适合用包含方法做,代码复杂

(3).字符组成是由(a-zA-Z0-9)  难道我们在随机他们的码表一一判断吗?-------->可以把们放到一个容器中ArrayList 在集合的随机索引



四、HashMap,LinkedHashMap,TreeMap的区别。

Map主要用于储存键值对,根据键得到值,因此不允许键重复(若重复则覆盖),但是允许值重复。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 1,976评论 0 13
  • 一、集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map;两者的区别: 1、Col...
    程序员欧阳阅读 11,636评论 2 61
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,445评论 1 14
  • 整理/阳妹儿 概述 畸胎瘤一种被膜包覆的肿瘤,在肿瘤中可以看到许多类似于正常器官的组织混杂其间,如毛发、软骨、腺体...
    阳妹儿阅读 1,283评论 1 0