美文网首页
代码小知识3

代码小知识3

作者: 轻柔飞絮 | 来源:发表于2017-08-13 21:49 被阅读0次

1:集合(自己补齐)

      Collection(单列集合)

           List(有序,可重复)

                    ArrayList

                     底层数据结构是数组,查询快,增删慢

                     线程不安全,效率高

                      Vector

                     底层数据结构是数组,查询快,增删慢

                    线程安全,效率低

                    LinkedList

                     底层数据结构是链表,查询慢,增删快

                     线程不安全,效率高

         Set(无序,唯一)

                 HashSet

                          底层数据结构是哈希表。

                              哈希表依赖两个方法:hashCode()和equals()

                              执行顺序:

                              首先判断hashCode()值是否相同

                              是:继续执行equals(),看其返回值

                              是true:说明元素重复,不添加

                              是false:就直接添加到集合

                             否:就直接添加到集合

              最终:自动生成hashCode()和equals()即可

         LinkedHashSet

                  底层数据结构由链表和哈希表组成。

                  由链表保证元素有序。

                  由哈希表保证元素唯一。

   TreeSet

                          底层数据结构是红黑树。(是一种自平衡的二叉树)

                         如何保证元素唯一性呢?

                         根据比较的返回值是否是0来决定

                    如何保证元素的排序呢?

两种方式

自然排序(元素具备比较性)

让元素所属的类实现Comparable接口

比较器排序(集合具备比较性)

让集合接收一个Comparator的实现类对象

Map(双列集合)

             A:Map集合的数据结构仅仅针对键有效,与值无关。

            B:存储的是键值对形式的元素,键唯一,值可重复。

HashMap

                   底层数据结构是哈希表。线程不安全,效率高

                 哈希表依赖两个方法:hashCode()和equals()

执行顺序:

首先判断hashCode()值是否相同

是:继续执行equals(),看其返回值

是true:说明元素重复,不添加

是false:就直接添加到集合

否:就直接添加到集合

最终:

自动生成hashCode()和equals()即可

LinkedHashMap

底层数据结构由链表和哈希表组成。

由链表保证元素有序。

由哈希表保证元素唯一。

Hashtable

底层数据结构是哈希表。线程安全,效率低

哈希表依赖两个方法:hashCode()和equals()

执行顺序:

首先判断hashCode()值是否相同

是:继续执行equals(),看其返回值

是true:说明元素重复,不添加

是false:就直接添加到集合

否:就直接添加到集合

最终:

自动生成hashCode()和equals()即可

TreeMap

底层数据结构是红黑树。(是一种自平衡的二叉树)

如何保证元素唯一性呢?

根据比较的返回值是否是0来决定

如何保证元素的排序呢?

两种方式

自然排序(元素具备比较性)

让元素所属的类实现Comparable接口

比较器排序(集合具备比较性)

让集合接收一个Comparator的实现类对象

2:到底使用那种集合(自己补齐)

看需求。

是否是键值对象形式:

是:Map

键是否需要排序:

是:TreeMap

否:HashMap

不知道,就使用HashMap。

否:Collection

元素是否唯一:

是:Set

元素是否需要排序:

是:TreeSet

否:HashSet

不知道,就使用HashSet

否:List

要安全吗:

是:Vector(其实我们也不用它,后面我们讲解了多线程以后,我在给你回顾用谁)

否:ArrayList或者LinkedList

增删多:LinkedList

查询多:ArrayList

不知道,就使用ArrayList

不知道,就使用ArrayList

3:集合的常见方法及遍历方式

Collection:

add()

remove()

contains()

iterator()

size()

遍历:

增强for

迭代器

|--List

get()

遍历:

普通for

|--Set

Map:

put()

remove()

containskey(),containsValue()

keySet()

get()

value()

entrySet()

size()

遍历:

根据键找值

根据键值对对象分别找键和值

作业:

我讲解过的任意一个集合,我要求你存储什么,你就能够存储什么。

并且,还要能够遍历出来。

4:ArrayList,LinkedList,HashSet,HashMap(掌握)

存储字符串和自定义对象数据并遍历

5:集合的嵌套遍历(理解)

相关文章

  • 代码小知识3

    1:集合(自己补齐) Collection(单列集合) List(有序,可重复) ...

  • 代码小知识

    overflow: hidden;//清除浮动 display: inline-block;//转化块级行内元素,...

  • OC代码小知识

    可以批量修改光标所在位置的变量 control + command + e 界面左侧的项目导航栏中显示当前文件co...

  • python自学,小知识代码,能飞天的小代码

    python自学,小知识代码,能飞天的小代码。自学必备,的小知识。看不懂的撩小编,关注小编,小编有好多的干货。或加...

  • vue3-v3.0.11源码解析(vue.global.js)第

    //... 代表删了很多非必要逻辑代码 本章小知识:vue3响应大纲: 读值时的跟踪:proxy 的 get 处理...

  • 微信小程序代码与模板制作有何不同?如何制作?

    制作微信小程序的方式有很多,懂代码知识的话,可以自己写代码开发;但是在不懂代码知识的情况下,要想制作一个小程序,你...

  • 小知识3

    网络的知识(上)

  • 小知识3

    1、家具中的苯、甲苯、二甲苯等挥发性有机污染物,可导致胎儿的先天性缺陷。 2、洗涤用品中最环保的是肥皂。 3、19...

  • 代码小知识总结1

    treeset集合,内容是有序的 TreeSet Collections类的shuffle方法对集合进行随机...

  • Python(参数) (2020/9/10)

    小言 今天学到的几个基础知识很好的理解python的代码 1)缺省参数 2)多值参数 3)元组和字典拆...

网友评论

      本文标题:代码小知识3

      本文链接:https://www.haomeiwen.com/subject/xuzerxtx.html