本周学习《Java程序设计》第十五章:

    • 泛型:

      • 泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。
      • 泛型类声明:class 名称<泛型列表>
      • 泛型类声明对象:类名后多了一对<泛型列表>,必须要用具体的类型替换<>中的泛型
      • LinkedList<String> mylist=new LinkedList<String>();
    • 链表:
      • 链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用
      • LinkedList泛型类创建的对象以链表结构存储数据,习惯上称LinkedList类创建的对象为链表对象。
      • LinkedList<String> mylist=new LinkedList<String>();创建一个空双链表。
      • add(E obj)向链表依次增加节点。
      • LinkedList泛型类实现Lis泛型接口中的一些常用方法
        • 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泛型类本身新增加的一些常用方法
        • public void addFirst(E element)向链表的头添加新节点,该节点中的数据是参数elememt指定的数据。
        • public void addLast(E element)向链表的末尾添加新节点,该节点中的数据是参数elememt指定的数据。
        • public E getFirst()得到链表中第一个节点中的数据。
        • public E getLast()得到链表中最后一个节点中的数据。
        • public E removeFirst()删除第一个节点,并返回这个节点中的数据。
      • 遍历链表
        • 当用户需要遍历集合中的对象时,应当使用该集合提供的迭代器,而不是让集合本身来遍历其中的对象
        • 链表对象可以使用iterator()方法获取一个Iterator对象,该对象就是针对当前链表的迭代器
        • 构造: Iterator <String> iter=list.iterator()
      • 排序与查找
        Collections类提供的用于排序和查找的类方法如下:

        • public static sort(List<E> list)该方法可以将list中的元素升序排列
        • int binarySearch(List<T> list, T key,CompareTo<T> c)使用折半法查找list是否含有和参数key相等的元素,如果key链表中某个元素相等,方法返回和key相等的元素在链表中的索引位置(链表的索引位置从0考试),否则返回-1
      • 洗牌与旋转
        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泛型类创建一个堆栈对象,堆栈对象常用方法:
        • 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>对象采用散列表这种数据结构存储数据,习惯上称HashMap<K,V>对象为散列映射
      • 常用方法:
        • public void clear()清空散列映射
        • public Object clone()返回当前散列映射的一个克隆
        • public boolean containsKey(Object key)如果散列映射有“键/值”对使用了参数指定的键,方法返回true,否则返回false
        • public boolean containsValue(Object value)如果散列映射有“键/值”对的值是参数指定的值
        • public V put(K key,V value)将键/值对数据存放到散列映射中,该方法同时返回键所对应的值
        • public V get(Object key)返回散列映射中使用key做键的“键/值”对中的值
        • public boolean isEmpty()如果散列映射不含任何“键/值”对,方法返回true,否则返回false
        • public V remove(Object key)删除散列映射中键为参数指定的“键/值”对,并返回键对应的值
        • public int size()返回散列映射的大小,即散列映射中“键/值”对的数目
    • 树集
      • TreeSet<E>泛型类

        • TreeSet<String> mytree=new TreeSe<String>(); TreeSet类创建的对象称作树集
        • mytree.add("boy");使用add方法为树集添加节点
      • TreeSet类的常用方法
        • public boolean add(E o)向树集添加加节点
        • public void clear()删除树集中的所有节点
        • public void contains(Object o)如果树集中有包含参数指定的对象,该方法返回true,否则返回false
        • public E first()返回树集中的第一个节点中的数据(最小的节点)
        • public E last()返回最后一个节点中的数据(最大的节点)
        • public isEmpty()判断是否是空树集,如果树集不含任何节点,该方法返回true
        • public boolean remove(Object o)删除树集中的存储参数指定的对象的最小节点
        • public int size()返回树集中节点的数目
    • 树映射
      • TreeMap<K,V>类实现了Map<K,V>接口,称TreeMap<K,V>对象为树映射。
      • 树映射使用public V put(K key,V value);方法添加节点。

20175324 2018-2019-2 《Java程序设计》第8周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. java学习笔记02-Eclipse IDE配置

    Eclipse是java的ide工具,ide是集成开发工具.实际开发中都需要使用ide工具.eclipse下载 java代码在运行时,是需要先进行编译,然后才能运行.可以直接在IDE工具里运行,它会帮 ...

  2. linux系统自动备份打包部署脚本

    1.使用jenkins配置任务 2.执行脚本放在/home/guard/目录下 #!/bin/sh #author wangxiangyu #当前时间 DATE=$(date +%Y%m%d) #环境 ...

  3. [mysql] 修复问题表Table '.xxxx' is marked as crashed and should be repaired

    程序执行的过程中,出现   Table '.xxxx' is marked as crashed and should be repaired 错误,上网查了一下,原来是表遭到损坏所致,具体修复办法如 ...

  4. SQLAlchemy 使用(二)表关联

    前言 在上一章中我们介绍了 SQLAlchemy 建立基本表,但是一般情况下,表之间是有关联的,比如 一对一/一对多/多对多,当然 SQLAlchemy 是支持建立model时指定关系的 正文 多对一 ...

  5. Codeforces 558E A Simple Task (计数排序&&线段树优化)

    题目链接:http://codeforces.com/contest/558/problem/E E. A Simple Task time limit per test5 seconds memor ...

  6. vue环境下新建项目

    1.之前电脑上安装了node和npm,查看下版本信息. 2.现在安装vue-cli脚手架,可以全局安装: npm install --global  vue-cli 之前自己电脑没有安装过webpac ...

  7. 仓鼠找sugar

    洛谷P3398 仓鼠找sugar 题目传送门 参考 \(whm\) 大佬的博客 这儿 代码不难,难在思路上. 令 \(X = lca(a,b) Y = lca(c,d)\) 仓鼠 \((cs)\) 的 ...

  8. syntax error near unexpected token `do(写的shell脚本出现格式问题)--->1.问题2.展示信息3.解决方案

    1问题:Linux和windows下的回车换行符不兼容的问题 [root@node-01 script]# sh start_zk.sh art_zk.sh: line 3: syntax error ...

  9. LOJ#6374 网格

    题解: 挺好的一道题 两次容斥+一次二项式反演 首先考虑部分分不存在k的限制 然后我们发现两维之间是互相独立的 下面以x轴为例 然后问题就变成了 $$\sum\limits_{i=1}^{R} {xi ...

  10. 在Windows上使用Let加密IIS

    在Windows上使用Let加密IIS https://weblog.west-wind.com/posts/2016/Feb/22/Using-Lets-Encrypt-with-IIS-on-Wi ...