20175234 2018-2019-2 《Java程序设计》第八周学习总结

教材学习内容总结

15.1泛型

  • 泛型类声明 Class 名称<泛型列表>,泛型列表给出的泛型可以作为类的成员变量的类型、方法的类型以及局部变量的类型。
  • 使用泛型类声明变量,与普通类相比,多了一对“<>”。Java泛型的主要目的:可以建立具有类型安全的数据结构,如列表散列表等。在使用这些泛类建立的数据结构时,不需要强制类型转换,不要求进行运行时类型检查。

15.2链表

  • LinkedList泛型类创建的对象以链表结构存储数据,需要指明E的具体类型,如LinkedList<String>mylist=new LinkedList<String>();创建了一个对象必须是String类的双向链表。
  • 用add添加结点,例如
mylist.add(“How”);
mylist.add(“Are”);

  • 常用方法

  • 遍历链表:可以用LinkedList类中的get(int index)返回当前链表第index个结点中的对象,也可以使用迭代器遍历集合(找到集合中一个对象的同时,耶得到遍历的后继对象的引用)。由下图可知,迭代器遍历链表,更加快速。

  • 排序与查找:Collections类提供了用于排序和查找的类方法如下:public static sort(List<E> list)按升序列,int binarySearch (List<T>list,T key,CompareTo<t> c)折半查找,存在返回引索位置(引索位置从0开始),不存在返回-1。

  • 洗牌与旋转

    * public static void shuffle(List list)按洗牌算法重新随机排列

    * static void rotate(List list ,int distance),旋转链表中数据,distance取正值,向右旋转list中数据(第一个值移到第二位,最后一位移到第一位),取负值向左旋转list中数据。

    * public static void reverse(List list),翻转list中数据。

15.3堆栈

  • 创建堆栈对象java.util包 Stack<E>
  • 压栈操作public E push(E item )
  • 弹栈操作public E pop();
  • 判断是否有数据public boolean empty();有数据返回false,无返回true。
  • 获取堆栈顶端数据,但不删除数据public E peek();
  • 获取数据在堆栈中的位置,最顶端为1,向下依次累加,无则返回-1public int search(Object data);

15.4散列映射

  • 用HashMap<K,V>泛型类创建的对象称作散列映射。
  • 常用方法(p452)

    * public void clear()

    * public Object clone()

    * public Boolean containsKey(Object key)

    * public Boolean containsValue(Object value)

    ……
  • 遍历散列映射
  • 基于散列映射的查询

15.5树集

  • TreeSet创建树集。
  • 树集用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() 返回树集中节点的数目。

15.6树映射

  • TreeMap<K,V>类实现了Map<K,V>接口,称TreeMap<K,V>对象为树映射。
  • public V put(K key,V value); 添加节点。

15.7自动装箱与拆箱

  • JDK1.5新增的基本类型数据和相应的对象之间相互自动转换的功能,称作基本数据类型的自动装箱与拆箱(Autoboxing and Auto-Unboxing of Primitive Types)。

教材学习中的问题和解决过程

  • 问题1:

  • 问题1在cmd中尝试运行

  • 问题2:从上图可见,出现编码JBK的不可映射字符问题

  • 问题2解决方案:编码JBK的不可映射字符

    使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java

    另一种思路

代码托管

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 51/51 1/1 12/20 Java的重要起步
第二周 460/511 2/3 30/32 Java的简单语句学习
第三周 803/1314 2/5 25/57 Java的基础学习
第四周 485/1699 1/6 20/77 Java的子类与继承
第五周 393/2092 1/7 20/97 Java的接口与实现
第六周 156/2321 2/9 18/115 内部类和异常类、输入输出流
第七周 1225/3546 2/11 20/135 常用类及方法
第八周 487/4032 2/13 20/155 泛型与集合框架

参考资料

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

  1. 201521123027 <java程序设计>第八周学习总结

    1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...

  2. 20175234 2018-2019-2 《Java程序设计》第九周学习总结

    目录 20175234 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码托管 感想 学习进度条 参考资料 20175234 2 ...

  3. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

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

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

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

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

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

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

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

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

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

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

随机推荐

  1. 【转录组入门】3:了解fastq测序数据

    操作:需要用安装好的sratoolkit把sra文件转换为fastq格式的测序文件,并且用fastqc软件测试测序文件的质量 作业:理解测序reads,GC含量,质量值,接头,index,fastqc ...

  2. JDK最新版 Jmeter最新版

    http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html http://jmeter.a ...

  3. 好用的treeGrid

    jquery easyui 官网:http://www.jeasyui.net/plugins/186.html  下面以学校班级情况,先贴出效果图吧! 数据库设计:红色框中为必须要有的列,右边三个为 ...

  4. n2n网络穿透内网

    目录 前言 配置 网络拓扑: 公网服务器的配置 公司电脑的配置 家里笔记本的配置 注意事项 使用n2n网络 n2n的各edge之间传输数据 补充:NAT类型 后记 前言 在家里的时候比较经常需要对公司 ...

  5. 拖拽 ‘vue-grid-layout’ 插件了解下

    我接触到vue-grid-layout是通过我们公司的项目,感觉还是比较简单上手的,大概看了有1个小时吧,我是个行动派,就是觉得实践出真知,但是记性也不太好,有时候自己踩过的坑会忘记,会改但是会忘记原 ...

  6. LeetCode 206. Reverse Linked List倒置链表 C++

    Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5->4-> ...

  7. 06 Jquery 基础

    前端学习之jquery: jQuery:一个库 Jquery的基础语法: $(selector).action() 基本选择器: <script> //基本选择器 //$("*& ...

  8. 彻底搞懂Scrapy的中间件(三)

    在前面两篇文章介绍了下载器中间件的使用,这篇文章将会介绍爬虫中间件(Spider Middleware)的使用. 爬虫中间件 爬虫中间件的用法与下载器中间件非常相似,只是它们的作用对象不同.下载器中间 ...

  9. Spring Boot 初识

    发展到今天,spring已经是一个大家族了,如果想要使用其中的两到三个组件就会有多复杂的配置,有时候还有会版本不一致的错误,让人很无奈.于是,就有了spring Boot,spring  Boot   ...

  10. SAML2.0 SP端处理

    sso response解析 import java.io.ByteArrayInputStream; import java.io.InputStream; import java.security ...