教材学习内容总结

1:泛型主要目的是建立具有类型安全的集合框架,如链表,散列映射等数据结构。

泛型类的声明:

class People<E>

People是泛型类的名称,E是其中泛型,E可以是任何对象或接口,但不能是基本数据类型。

泛型类声明和创建对象,类后多了一对“<>”,而且必须用具体的类型替换“<>”中的泛型

Cone<Circle> coneOne;
coneOne=new Cone<Circle>(new Circle());

2.java.util包中的LinkedList泛型类创建的对象以链表的结构存储数据,习惯称LinkedList类创建的对象为链表对象。

LinkedList<String> mylist=new LinkedList<String> ();//创建双链表
mylist.add("How");//以add(E obj)方法添加节点

链表对象可以使用iterator()方法获取一个Iterator对象,成为当前链表的迭代器。

3.堆栈对象创建使用Stack泛型类创建

压栈用push,弹栈用pop,判断堆栈是否还有数据用peek,获得顶端数据用search(不删除数据)。

HashMap<K,V>泛型类实现泛型接口Map<K,V>。编程时可以使用接口回调技术,接口变量就可以调用类实现的接口方法。该种对象采用散列图这种数据结构存储数据。习惯上成为散列映射。

4.树集

TreeSet类创建的对象,采用树结构存储数据。树节点中的数据会按存放的数据的大小顺序一层一层地依次排列,在同一层中的节点从左到右按字典序从小到大递增排列,下一层的都比上一层小。使用add添加节点。

5.树映射

TreeMap<K,V>对象,使用 public V put(K key,V value)方法添加节点。key是数据value的关键字,树映射保证了节点是按照节点中的键字升序排列。

6.JDK1.5后

程序允许把一个基本数据类型添加到类似链表等数据结构中,系统会自动完成基本类型到相应对象的转换(自动装箱),当从一个数据结构中获取对象时,如果该对象是基本数据的封装对象,那么系统自动完成对象到基本类型的转换(自动拆箱)

书上代码分析:

15.1:声明一个泛型类Cone,计算体积的时候只关心它的底能否计算面积,和底的具体形状没有关系,所以求体积时用泛型做底,而且泛型变量只能调用从object类继承或重写的方法,例子中的底面积需要用tostring()方法。

15.2:该例子是为了比较get(int index)方法与iterator()方法遍历链表所需要的时间。因为LinkedList的存储结构不是顺序结构,所以链表调用get(int index)方法所要的时间长,所以需要用迭代器。

15.3:这个例子是使用老版本JDK的LinkedList,创建一个新链表,添加元素进行遍历,一个是使用get index,一个是使用迭代器。

15.4:例子4是通过Comparable接口规定的大小关系来进行对链表的排序,最后再用Collections类调用sort方法排序。该程序中在 compareTo方法里返回的是height的大小比较,所以链表中的对象是按照height的大小来决定对象之间的大小关系。

15.5:该例子就是使用了Collections类中的洗牌算法还有旋转算法对链表进行洗牌还有旋转,再分别将它们遍历输出看变化。

15.6:该例子是使用堆栈输出一个递归序列,算法是后一项等于前两项的和,也就是Fibonacci数列。 重要的操作就是

压栈和弹栈:

push 压栈

pop 弹栈

15.7:该例子是一个英语单词查询的GUI程序,用户在界面的一个文本框中输入一个英文单词,另一个文本框显示单词的翻译

15.8:该例子首先是创建了一个树集,在树集里面增添了四个元素,而树集和链表不一样,添加的时候它就按照对象的大小进行添加的。

90 赵一

66 钱二

86 孙三

76 李四

15.9:该例子是使用TreeMap分别按学生的英语成绩和数学成绩排序结点,不仅存储了数据,还存储了与其相关联的关键字(即数学和英语)。

15.10:该例子实现了自动装箱与自动拆箱的功能。

程序允许把一个基本数据类型添加到类似链表等数据结构中,系统会自动完成基本类型到相应对象的转换,获取时系统自动完成对象到基本类型的转换。

代码调试中的问题和解决过程

-问题1:编译时出现“使用了未经检查或不安全的操作”的提示

-问题1解决方案:

①首先按照提示所说使用-Xlint:unchecked重新编译,发现失败

②后来在网上查询,在类的前面加上@SuppressWarnings("unchecked")

@SuppressWarnings("unchecked")
public class Jisuan{ }

③原因:JAVA是一门安全性比较高的语言,它在编译之类要进行类型等一系列的检查。如果你使用了注解就可以告诉编译器不用检查,这样子就可以避过编译时期间的安全检查,这样子的效率会提高 。但同时安全性就大打折扣了。

代码托管

20175213 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. SqlServer :实现树形结构递归查询(无限极分类)

    SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE仅被定义一 ...

  2. chrony配置的和相关命令

    ntp命令 查看时间同步源: $ chronyc sources -v 查看时间同步源状态: $ chronyc sourcestats -v 设置硬件时间 硬件时间默认为UTC: $ timedat ...

  3. mysql导入sql文件出错的一种解决方法

    转:https://blog.csdn.net/u011806486/article/details/60147358 本人在本地使用navicat for mysql可以连接到服务器数据库,但是从服 ...

  4. FM与PM信号的表现形式

    角度调制可以写成如下形式: $u(t)=A_c cos(2\pi f_c t + \phi (t) )$ $A_c cos(2\pi f_c t)$是载波,调制信号控制$\phi (t)$. 对于PM ...

  5. mysql合并表

    有如下两张表 a +------+------+---------+ | uid | name | addtime | +------+------+---------+ | | | +------+ ...

  6. JavaScript 高级特性

    1. 原型Prototype 1.1 构造函数 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定 ...

  7. 利用微信支付的订单查询接口可以在APP 中提高支付的可靠性

    最近公司有一个应用,用户可以在微信公众号上面下单,也可以在APP 中下单. 当用户在公共号上面下单时,微信支付成功可以返回微信支付单号,但是在APP 中用户微信支付时,个别时候会出现用户已经付款成功, ...

  8. 窗口置顶 - 仿TopWind

    前置学习:低级鼠标hook,获得鼠标状态. 这个在原来获得鼠标状态的基础上,加上一个事件处理即可. TopWind就是一个可以置顶窗口的文件,避免复制粘贴的时候的来回切换(大窗口与小窗口),算是一个实 ...

  9. 朴素贝叶斯法(naive Bayes algorithm)

    对于给定的训练数据集,朴素贝叶斯法首先基于iid假设学习输入/输出的联合分布:然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y. 一.目标 设输入空间是n维向量的集合,输出空间为 ...

  10. DOM事件类

    1.DOM中的事件级别 DOM0: element.onclick = function(){} DOM1: 没有与事件相关的设计 DOM2: element.addEventListener('cl ...