zoukankan      html  css  js  c++  java
  • 一、javaSE (十五)对象数组、集合(Collection)、集合(List)

    1:对象数组(掌握)

          (1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时侯的数组就叫对象数组

          (2)案例:

          用数组存储5个学生对象,并遍历数组。

    2:集合(Collection)(掌握)

          (1)集合的由来?

               我们学习的是Java--面向对象--操作很多对象--存储--容器(数组和 stringbuffer)--数组

               而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用

          (2)集合和数组的区别?

               A:长度区别

                     数组固定

                     集合可变

               B:内容区别

                     数组可以是基本类型,也可以是引用类型

                     集合只能是引用类型

               C:元素内容

                     数组只能存储同一种类型

                     集合可以存储不同类型(其实集合一般存储的也是同一种类型)

          (3)集合的继承体系结构?

               由于需求不同,Java就提供了不同的集合类。这多个集合类的数据结构不同,但是它们都是要提供存储和通历功能的,

               我们把它们的共性不断的向上提取,最终就形成了集合的继承体系结构图

               Collection

                     |--List

                          |--Arraylist

                          |--Vector

                          |--Linkedlist

                     |--Set

                          |--Hashset

                          |--Treeset

          (4)Collection的功能概述(自已补齐)

               A:添加功能

               B:删除功能

               c:判断功能

               D:获取功能

               E:长度功能

               F:交集(了解)

               G:把集合转数組(了解)

          (5)Collection集合的通历

               A:把集合转数組(了解)

               B:迭代器(集合专用方式)

          (6)迭代器

               A:是集合的获取元素的方式

               B:是依赖于集合而存在的

               C:迭代器的原理和源码

                     a:为什么定义为了一个接口而不是实现类?

                     b:看了看迭代器的内部类实现

          (7)Collection集合的案例(遍历方式迭代器)

               集合的操作步骤:

                     A:创建集合

                     B:创建元素对象

                     c:把元素添加到集合

                     D:遍历集合

               A:存储字符并通历

               B:存储自定义对象并遍历

     

    3:集合(List)(掌握)

          (1)ListCo11ection的子接口

               特点:有序(存储顺序和取出顺序一致),可重复;

          (2)List的特有功能:(自己补齐)

               A:添加功能

               B:删除功能

               c:获取功能

               D:迭代器功能

               E:修改功能

          (3)List集合的特有遍历功能

               A:size()get()结合

          (4)列表迭代器的特有功能:(了解)

               可以逆向遍历,但是要先正向遍历,所以无意义,基本不使用

          (5)并发修改异常

               A:出现的现象

                     迭代器遍历集合,集合修改集合元素

               B:原因

                     送代器是依赖于集合的,而集合的改变送代器并不知道

               C:解决方案

                     a:迭代器遇历,迭代器修改(ListIterator)

                          元素添加在刚才迭代的位置

                     b:集合通历,集合修改(size()get())

                          元素添加在集合的末屬

          (6)常见数据结构

               A:先进后出

               B:队列先进先出

               c:数组查询快,增删慢

               D:链表查询慢,增删快

          (7)五就t的子类特点(面试题)

               Arraylist

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

                     线程不安全,效率高

               Vector

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

                     线程安全,效率低

               Linkedlist

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

                     线程不安全,效率高A

               到底使用谁呢?看需求?

               分析:

                     要安全吗?

                          : Vector(即使要,也不使用这个,后面再说)

                          不要: Arraylist或者 Linkedlist

                                查询多: Arraylist

                                增删多: Linkedlist

               什么都不知道,就用 Arraylist

  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/zhangchengbing/p/8278537.html
Copyright © 2011-2022 走看看