20175310 《Java程序设计》第8周学习总结

本周博客:

https://www.cnblogs.com/xicyannn/p/10722004.html

教材学习内容总结

这周学习了第十五章的内容,主要的知识点如下:

泛型:

  • 泛型类声明:可以使用class 名称<泛型列表>声明一个类,例如:class People<E>
  • 这里是列表文本类名后多了对<>,而且必须要用具体的类型替换<>中的泛型。
  • 声明对象:
Cone<Circle> coneOne;
coneOne = new Cone<Circle>(new Circle());

链表:

  • LinkedList链表:创建对象以链表结构存储数据
  • 创建空链表:LinkedList mylist = new LinkedList();
  • 使用add(E obj)方法依次增加节点
  • 使用get(int index)方法遍历链表

排序与查找 :

  • Collections类提供的用于排序和查找的类方法如下:
  1. public static sort(List<E> list) 该方法可以将list中的元素升序排列。
  2. int binarySearch(List<T> list, T key,CompareTo<T> c) 使用折半法查找list是否含有和参数key相等的元素,如果key链表中某个元素相等,方法返回和key相等的元素在链表中的索引位置(链表的索引位置从0考试),否则返回-1。
  • 升序排序:public static sort(List list)
  • 折半法查找:int binarySearch(List list,T key,CompareTo c)

洗牌与旋转 :

  • 随机排序:public static void shuffle(List list)
  • 旋转数据:static void rotate(List list,int distance)
  • 翻转数据:public static void reverse(List list)

堆栈 :

  • 堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操作。
  1. Stack<E>泛型类创建一个堆栈对象,堆栈对象常用方法:
  2. public E push(E item);实现压栈操作
  3. public E pop();实现弹栈操作。
  4. public boolean empty();判断堆栈是否还有数据。
  5. public E peek();获取堆栈顶端的数据,但不删除该数据。
  6. public int search(Object data);获取数据在堆栈中的位置。

散列映射:

HashMap<K,V>泛型类创建的对象称作散列映射,例如:

HashMap<String,Student> hashtable = HashSet<String,Student>();

树集:

  • TreeSet类创建的对象叫做树集。
  • 在树集中,按字典顺序从左到右递增,从上到下递减。

树映射

  • TreeMap<K,V>类实现了Map<K,V>接口,称TreeMap<K,V>对象为树映射。
  • 树映射的结点存储关键字、关键值对。

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

  • 问题1:

    课本464页习题第一题的第四小问:对于经常需要查找的数据,应当选用LinkedList<E>,还是选用HashMap<K,V>来存储?

  • 问题1解决方案:

    通过询问同学以及阅读课本,可以知道,使用HashMap<K,V>,利用这个类创建散列映射,散列映射采用散列表结构存储结果,方便查找数据,可以减少检索的开销。

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

在做这周的实验二时,遇到了许多问题,主要的问题如下:

  • 问题2:

    在做第四个实验的时候,当复数的虚部为负时,表达式显示错误:

  • 问题2解决方案:

    首先用()把两个复数隔开,更加清晰



    然后判断虚部的正负,当虚部为负时,将ImagePart*(-1)作为一个整体输出。

  • 问题3:

    测试代码时,提示不正确

  • 问题3解决方案:

    可以看到提示说,希望得到的和实际得到的,看起来是一样的,但是编译不通过,所以应该是类型不同。

    将计算结果最后加上“”,将结果转换成字符串类型,就可以编译通过了。

代码托管

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 6/6 2/2 30/30
第二周 625/631 3/5 35/65
第三周 660/1291 2/7 38/103
第四周 972/2263 2/9 30/133
第五周 399/2662 3/12 32/165
第六周 1342/4004 3/15 35/200
第七周 1341/5345 2/17 35/235
第八周 798/6143 2/19 35/270

20175310 《Java程序设计》第8周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. cf1132G. Greedy Subsequences(线段树)

    题意 题目链接 Sol 昨天没想到真是有点可惜了. 我们考虑每个点作为最大值的贡献,首先预处理出每个位置\(i\)左边第一个比他大的数\(l\),显然\([l + 1, i]\)内的数的后继要么是\( ...

  2. Vue之axios请求数据

    引入文件 <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"> ...

  3. python线程同步原语--源码阅读

    前面两篇文章,写了python线程同步原语的基本应用.下面这篇文章主要是通过阅读源码来了解这几个类的内部原理和是怎么协同一起工作来实现python多线程的. 相关文章链接:python同步原语--线程 ...

  4. git 入门教程之1分钟快速了解 git

    git 入门教程 git 是分布式版本控制系统,是文本文档管理的利器,是帮助你管理文件动态的好帮手. 如果你曾经手动管理过文档,一定有这样的经历,比如你正在编辑文档,想删除某段落,又担心不久后可能会恢 ...

  5. 被遗弃的depends2.2,替换解决方案——VS命令行

    vs的早期版本提供了depends工具,最新版本是2.2,已经不再更新了,网站是dependencywalker.com. 现在,我们可以使用vs开发人员命令行,dumpbin工具,导出二进制文件的信 ...

  6. Python 魔法方法简介

    1.什么是魔法方法? 魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一 ...

  7. 「客户成功故事」OneAPM 助力网上办事大厅构建阳光、高效、安全的政务服务平台

    (一) 项目背景: 网上办事大厅是由省信息中心承建的电子政务核心业务系统,致力于为全省民众提供一站式网上办事服务,实现了政务信息网上公开.法人及个人事项网上办理.公共决策网上互动.政府效能网上监督五大 ...

  8. Java集合:List、Set和Map的区别,ArrayList和LinkedList有何区别..........

    一.数组和集合的区别: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型): 集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! J ...

  9. AFURLSessionManager 上传下载使用

    1.下载 Creating a Download Task NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ...

  10. Jenkins2.32打包Unity项目的记录

    前言 使用jenkins来打包unity3d的工程. jenkins :2.50 /2.32.3(长期支持版 建议使用此版本) 操作系统:windows 7 x64 sp1 (打包安卓和win) ,m ...