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

主要内容##

泛型###

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

1、泛型类声明

可以使用class名称<泛型列表>声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如:class People<E>

其中People是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据。

2、使用泛型类声明对象

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

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

3、LinkedList泛型类常用方法

LinkedList泛型类创建的对象以链表结构存储数据,习惯上称LinkedList类创建的对象为链表对象。例如,

LinkedList<String> mylist=new LinkedList<String>();

LinkedList泛型类实现Lis泛型接口中的一些常用方法:

  • public boolean add(E element)

    向链表末尾添加一个新的节点,该节点中的数据是参数elememt指定的数据。

  • public void add(int index ,E element)

    向链表的指定位置添加一个新的节点,该节点中的数据是参数elememt指定的数据。

  • public void clear() 删除链表的所有节点,使当前链表成为空链表。

  • public E remove(int index) 删除指定位置上的节点。

  • public boolean remove(E element) 删除首次出现含有数据elemen的节点。

  • public E get(int index) 得到链表中指定位置处节点中的数据。

    LinkedList泛型类本身新增加的一些常用方法:

  • public void addFirst(E element) 向链表的头添加新节点,该节点中的数据是参数elememt指定的数据。

  • public void addLast(E element) 向链表的末尾添加新节点,该节点中的数据是参数elememt指定的数据。

  • public E getFirst() 得到链表中第一个节点中的数据。

  • public E getLast() 得到链表中最后一个节点中的数据。

  • public E removeFirst() 删除第一个节点,并返回这个节点中的数据。

链表###

链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用。

1、遍历链表

  • 当用户需要遍历集合中的对象时,应当使用该集合提供的迭代器,而不是让集合本身来遍历其中的对象。由于迭代器遍历集合的方法在找到集合中的一个对象的同时,也得到待遍历的后继对象的引用,因此迭代器可以快速地遍历集合。
  • 链表对象可以使用iterator()方法获取一个Iterator对象,该对象就是针对当前链表的迭代器速地遍历集合。

2、排序、查找、洗牌、旋转

  • public static sort(List<E> list) 该方法可以将list中的元素升序排列。
  • int binarySearch(List<T> list, T key,CompareTo<T> c)

    使用折半法查找list是否含有和参数key相等的元素,如果key链表中某个元素相等,方法返回和key相等的元素在链表中的索引位置(链表的索引位置从0考试),否则返回-1。
  • public static void shuffle(List<E> list) 将list中的数据按洗牌算法重新随机排列。
  • static void rotate(List<E> list, int distance) 旋转链表中的数据。
  • public static void reverse(List<E> list) 翻转list中的数据。

堆栈###

堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操作。

Stack泛型类创建一个堆栈对象,堆栈对象常用方法:

  • public E push(E item);实现压栈操作
  • public E pop();实现弹栈操作。
  • `public boolean
  • empty();`判断堆栈是否还有数据。
  • public E peek();获取堆栈顶端的数据,但不删除该数据。
  • public int search(Object data);获取数据在堆栈中的位置。

散列映射###

HashMap<K,V>对象采用散列表这种数据结构存储数据,习惯上称HashMap<K,V>对象为散列映射。

例如:

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

hashtable可以存储“键/值”对数据。

1、常用方法:

  • public V put(K key,V value)将键/值对数据存放到散列映射中,该方法同时返回键所对应的值。
  • public void clear() 清空散列映射。
  • public Object clone() 返回当前散列映射的一个克隆。
  • public boolean containsKey(Object key)

    如果散列映射有“键/值”对使用了参数指定的键,方法返回true,否则返回false。
  • public boolean containsValue(Object value) 如果散列映射有“键/值”对的值是参数指定的值。
  • public V get(Object key) 返回散列映射中使用key做键的“键/值”对中的值。
  • public boolean isEmpty() 如果散列映射不含任何“键/值”对,方法返回true,否则返回false
  • public V remove(Object key) 删除散列映射中键为参数指定的“键/值”对,并返回键对应的值。
  • public int size() 返回散列映射的大小,即散列映射中“键/值”对的数目。

2、遍历####

public Collection<V> values()方法返回一个实现Collection接口类创建的对象。

使用接口回调技术,即将该对象的引用赋给Collection<V>接口变量,该接口变量可以回调iterator()方法获取一个Iterator对象,这个Iterator对象存放着散列映 射中所有“键/值”对中的“值”。

3、查询####

对于经常需要进行查找的数据可以采用散列映射来存储这样的数据,即为数据指定一个查找它的关键字,然后按着“健-值”对,将关键字和数据一并存入散列映射中。

树集###

TreeSet类创建的对象称作树集。

例如TreeSet<String> mytree=new TreeSe<String>();

然后使用add方法为树集添加节点,例如

mytree.add("boy");

1、节点####

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

树映射###

TreeMap<K,V>类实现了Map<K,V>接口,称TreeMap<K,V>对象为树映射。

树映射使用public V put(K key,V value);方法添加节点。

自动装箱与拆箱###

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

随机推荐

  1. word中编辑论文公式对齐问题

    这里只说在word中编辑公式时,公式居中,编号右对齐的情况. 在编辑公式时,我平时就是右对齐,然后通过敲击空格键进行公式的居中,然而这样并不美观.所以接下来学习一下: 1)首先打开视图-->标尺 ...

  2. i3wm 调节音量

    i3wm,设置调节音量的快捷键 configure file: ~/.config/i3/config add # for sound control bindsym XF86AudioRaiseVo ...

  3. 爬虫基础之urllib库

    urllib库的基本使用 urlopen() # 导入urllib库 import urllib # 往指定url发送请求,返回一个响应对象 response = urllib.request.url ...

  4. c#上课总结

    private 是完全私有的,只有当前类中的成员能访问到. protected 是受保护的,只有当前类的成员与继承该类的类才能访问.   Ctrl+k+c  多行注释Ctrl+k+u 解除注释   e ...

  5. PTA——字符串逆序

    PTA 7-59 字符串逆序 #include<stdio.h> #include<string.h> #define N 81 int main() { int i; cha ...

  6. maya权重拷贝一对一,一对多

    是不是有时候盔甲很多很碎头很大,用代理一个个拷贝很麻烦吧 用下面代码直接运行进行一对多或者一对一拷贝 第一个先选择参考物体,加选其他一堆有的没的有权重或没权重的物体执行一键拷贝,就可以啦 以下是源码送 ...

  7. 使用JBolt新建Maven版工程步骤

    一.打开新建对话框 在左侧右键new中可以找到JFinal创建工程的菜单 JBoltHome页面也有快捷按钮用来弹出创建工程对话框. 二.填写Maven和其他信息配置 填写工程name 主包名 下面有 ...

  8. visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

    一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧. 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新. 第二步,将visual studi ...

  9. head first c初探网络编程上

    server连接网络四部曲. 为了与外界沟通,c程序用数据流读写字节,比較经常使用的数据流有标准输入.标准输出.文件等. 假设想写一个与网络通信的程序.就须要一种新的数据流----------套接字. ...

  10. DataFrame对行列的基本操作实战

    1.pandas对行列的基本操作命令: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser ...