20175333曹雅坤 第八周课程学习总结

教材学习内容总结

泛型类

  • 泛型(Generics)是在JDK1.5中推出的,其主要目的是可以建立具有类型安全的集合框架
    可以使用“class 名称”声明一个泛型类,泛型列表中可以是任何接口或对象,但不能是基本数据类型
    泛型类声明和创建对象时,类名后多了一对“<>”,而且必须要用具体的类型替换“<>”中的泛型
    泛型类中的泛型变量bottom只能调用Object类中的方法
    使用泛型类建立的数据结构时,不必进行强制类型转换,在运行时不要求进行类型检查,使代码更安全
  • 链表
    链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用
    在java中使用LinkedList泛型类来创建以链表结构存储数据的对象
    链表使用add方法等常用方法对进行操作结点
    结点是自动链接在一起的
    链表对象可以使用iterator()方法获取一个Iterator对象,该对象就是针对当前链表的迭代器
    java也提供了顺序结构的动态数组表类ArrayList,数组表不适合动态地改变它存储的数据,但数组表获得第n个单元中的数据的速度要比链表获得第n个单元中的数据快
    而通过Collection类我们还可以将链表中的数据重新随机排列以及旋转
  • LinkedList泛型类
    LinkedList泛型类创建的对象以链表结构存储数据,习惯上称LinkedList类创建的对象为链表对象
  • 常用方法:
    LinkedList<E>泛型类实现Lis<E>泛型接口中的一些常用方法:
public boolean add(E element) //向链表末尾添加一个新的节点,该节点中的数据是参数elememt指定的数据。
public void add(int index ,E element)// 向链表的指定位置添加一个新的节点,该节点中的数据是参数elememt指定的数据。
public void clear()// 删除链表的所有节点,使当前链表成为空链表。
public E remove(int index) //删除指定位置上的节点。
public boolean remove(E element)// 删除首次出现含有数据elemen的节点。
public E get(int index) //得到链表中指定位置处节点中的数据。
LinkedList<E>泛型类本身新增加的一些常用方法:
public void addFirst(E element) //向链表的头添加新节点,该节点中的数据是参数elememt指定的数据。
public void addLast(E element)// 向链表的末尾添加新节点,该节点中的数据是参数elememt指定的数据。
public E getFirst() //得到链表中第一个节点中的数据。
public E getLast() //得到链表中最后一个节点中的数据。
public E removeFirst() //删除第一个节点,并返回这个节点中的数据。
  • 洗牌与旋转
    Collections类还提供了将链表中的数据重新随机排列的类方法以及旋转链表中数据的类方法:
public static void shuffle(List<E> list)// 将list中的数据按洗牌算法重新随机排列。
static void rotate(List<E> list, int distance) //旋转链表中的数据。
public static void reverse(List<E> list) //翻转list中的数据。

堆栈

堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操作
使用Stack泛型类创建一个堆栈对象
使用pushpopemptypeeksearch等方法对栈进行操作或查看栈的状态

tack<E>//泛型类创建一个堆栈对象,堆栈对象常用方法
public E push(E item);//实现压栈操作
public E pop();//实现弹栈操作
public boolean empty();//判断堆栈是否还有数据
public E peek();//获取堆栈顶端的数据,但不删除该数据
public int search(Object data);//获取数据在堆栈中的位置
  • 散列映射
    HashMap<K,V>对象采用散列表这种数据结构存储数据,习惯上称HashMap<K,V>对象为散列映射
    可以使用putclearclone等方法对散列进行操作
    values方法返回一个实现Colletion接口类创建的对象,可以使用接口回调技术,即将该对象的引用赋值给Collection接口变量,该接口变量可以回调iterator()方法获取一个Itertaor对象,这个Iterator对象存放散列映射中所有键/值对中的值
  • 常用方法:
public void clear()// 清空散列映射
public Object clone()// 返回当前散列映射的一个克隆
public boolean containsKey(Object key)// 如果散列映射有“键/值”对使用了参数指定的键,方法返回true,否则返回false
public boolean containsValue(Object value)// 如果散列映射有“键/值”对的值是参数指定的值
public V get(Object key)// 返回散列映射中使用key做键的“键/值”对中的值
public boolean isEmpty() //如果散列映射不含任何“键/值”对,方法返回true,否则返回false
public V remove(Object key)// 删除散列映射中键为参数指定的“键/值”对,并返回键对应的值
public int size() //返回散列映射的大小,即散列映射中“键/值”对的数目
  • 树集
    TreeSet类创建的对象称作树集
    在树集中,同一层中的结点从左到右按:大小顺序递增,从上到下递增
    在插入树集的结点前要在创建对象的类中实现Comparable接口
    树映射是一种特殊的树,树映射的结点存储关键字/值对
  • 自动装箱与拆箱
    自动装箱:程序允许把一个基本数据类型添加到类似链表等数据结构中,系统会自动完成基本类型到相应对象的转换
    自动拆箱:即自动装箱逆过程

代码托管

转载于:https://www.cnblogs.com/Hf-Hf/p/10745862.html

# 20175333曹雅坤 第八周课程学习总结相关推荐

  1. 20175333曹雅坤实验四《Android程序设计》实验报告

    20175333实验四<Android程序设计>实验报告 一.实验内容及步骤 - Android程序设计-1 Android Stuidio的安装测试: 参考<Java和Androi ...

  2. 20175333曹雅坤 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  3. 1 Robotics: Aerial Robotics 第3+4周 课程学习记录及课后习题解答

    Robotics: Aerial Robotics 第3+4周 WEEK - 3 Quiz Programming Assignment: 2-D Quadrotor Control WEEK - 4 ...

  4. 20165223《Java程序设计》第八周Java学习总结

    教材学习内容总结 第12章-JAVA多线程机制 要点 Java中的线程 Thread类与线程的创建 线程的常用方法 线程同步 协调同步的线程 线程联合 GUI线程 计时器线程 教材学习中的问题和解决过 ...

  5. 研究生周报(第八周)

    研究生周报(第八周) 学习目标 深度前馈网络 深度学习中的正则化 深度模型中的优化 卷积网络 学习时间 6.26-7.02 学习产出 Python代码 github记录 学习率衰减 梯度下降法更新参数 ...

  6. 20172328 2018-2019《Java软件结构与数据结构》第八周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第八周学习总结 概述 Generalization 本周学习了二叉树的另一种有序扩展?是什么呢?你猜对了!ヾ(◍°∇°◍) ...

  7. 20172310 2017-2018-2 《程序设计与数据结构》第八周学习总结

    20172310 2017-2018-2 <程序设计与数据结构>第八周学习总结 教材学习内容总结 我的总结主要是按照课本的顺序,对一些重要的知识点做出的总结和记录,方便后期的查看,当然其中 ...

  8. 2019夏第八周学习编辑总结

    这个作业属于哪个课程 C语言程序设计二 这个作业要求在哪里 2019春季学期第八周作业 我的课程目标 掌握常用字符串函数以及使用指针操作字符串的方法,掌握动态内存分配. 这个作业在哪个具体方面帮助我实 ...

  9. C语言程序设计II—第八周教学

    第八周教学总结(15/4-21/4) 教学内容 本周的教学内容为: 8.4 电码加密 知识点:指针与字符串,重难点:字符指针与字符串的关联和区别: 8.5 任意个整数求和 知识点:动态内存分配的概念和 ...

  10. 2019春第八周作业

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 第八周作业要求 我在这个课程的目标是 掌握常用字符串函数以及使用指针操作字符串的方法,掌握动态内存分配. 这个作业在哪个具体方面帮助我实现 ...

最新文章

  1. “高引用”《牛顿传》重版再出,今晚八点,来直播间“遇见牛顿”!
  2. 深度linux卡在扫描硬盘,linux使用badblocks命令扫描硬盘排除故障
  3. Blazor 机制初探以及什么是前后端分离,还不赶紧上车?
  4. Win32ASM学习[5]: 数据对齐相关的伪指令(ALIGN、EVEN、ORG)
  5. oracle sys_connect_by_root,CONNECT_BY_ROOT实现行列转换
  6. python接口自动化(一)--什么是接口、接口优势、类型(详解)
  7. Python产生随机数(转)
  8. winpcap 目的ip 是0_IP基础
  9. windows桌面的“我的电脑”“IE”等消失的解决方法
  10. 中移杭研 | 面向互联网应用的实时业务风控系统
  11. 汽车故障诊断技术【9】
  12. PLSQL 导出、导入 表和数据
  13. Windows系统服务器配置SSH服务
  14. win10计算机用户删除,Win10删除用户帐户的方法?如何在Win10中删除用户帐户
  15. 灵性图书馆:好书推荐-《把好运吸过来》
  16. final 关键字:用来修饰类,方法,成员变量,局部变量
  17. mysql判断字段是否存在不存在添加字段_mysql 新增字段时判断字段是否存在
  18. 【大熊智能nrf connect使用方法
  19. UEM“探针”技术及用户体验管理
  20. 杭州有什么「鲜为人知但很有意思」的景点?

热门文章

  1. 设计模式 (十七) 迭代器模式
  2. 企业网盘居然支持高速局域网文件传输工具(速度可达20M)
  3. PForDelta的介绍论文
  4. margin:0 auto和text-aglin:center的区别
  5. html5 动态图表FineReport优化报表取数
  6. was日志报检测到cpu饥饿
  7. android camera无预览拍照 后台拍照
  8. linux编辑文本文件aa的命令,Linux如何使用正则表达式命令?文本文件操作命令
  9. Android 防止button多次点击总结
  10. mysql查询季度数据统计_mysql按年度、季度、月度、周、日SQL统计查询代码