zoukankan      html  css  js  c++  java
  • 20175213 2018-2019-2 《Java程序设计》第8周学习总结

    教材学习内容总结

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

    代码托管

  • 相关阅读:
    《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换皮肤的
    Community Server专题五:IHttpHandlerFactory
    自定义 HttpModule 示例
    动态加入控件的方法
    JS应用DOM入门:DOM的对象属性
    JS应用DOM入门:简单文档DOM结构分析
    httpmodule专题(2)
    Java 算法之快速排序
    HTML与.jsp的融合
    Exception
  • 原文地址:https://www.cnblogs.com/LZHNB/p/10745765.html
Copyright © 2011-2022 走看看