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


    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
  • 相关阅读:
    《博客园美化》添加雪花/修改icon
    js获取开始年与结束年之间的年份
    《博客园美化》为您的博客增加一个萌萌的看板娘吧
    JS对比时间大小
    同域名下两个子级域名共享cookie
    input输入框禁止显示历史记录
    C# 操作符 << 与 >>
    如何在IIS上发布网站
    Sql 插入操作时返回当前新增的Id
    JS Cookie操作
  • 原文地址:https://www.cnblogs.com/xicyannn/p/10741582.html
Copyright © 2020-2023  润新知