20175234 2018-2019-2 《Java程序设计》第八周学习总结
20175234 2018-2019-2 《Java程序设计》第八周学习总结
教材学习内容总结
15.1泛型
- 泛型类声明
Class 名称<泛型列表>,泛型列表给出的泛型可以作为类的成员变量的类型、方法的类型以及局部变量的类型。 - 使用泛型类声明变量,与普通类相比,多了一对“<>”。Java泛型的主要目的:可以建立具有类型安全的数据结构,如列表散列表等。在使用这些泛类建立的数据结构时,不需要强制类型转换,不要求进行运行时类型检查。
15.2链表
- LinkedList泛型类创建的对象以链表结构存储数据,需要指明E的具体类型,如
LinkedList<String>mylist=new LinkedList<String>();创建了一个对象必须是String类的双向链表。 - 用add添加结点,例如
mylist.add(“How”);
mylist.add(“Are”);
…
- 常用方法



遍历链表:可以用LinkedList类中的get(int index)返回当前链表第index个结点中的对象,也可以使用迭代器遍历集合(找到集合中一个对象的同时,耶得到遍历的后继对象的引用)。由下图可知,迭代器遍历链表,更加快速。

排序与查找:Collections类提供了用于排序和查找的类方法如下:
public static sort(List<E> list)按升序列,int binarySearch (List<T>list,T key,CompareTo<t> c)折半查找,存在返回引索位置(引索位置从0开始),不存在返回-1。洗牌与旋转
* public static void shuffle(List list)按洗牌算法重新随机排列
* static void rotate(List list ,int distance),旋转链表中数据,distance取正值,向右旋转list中数据(第一个值移到第二位,最后一位移到第一位),取负值向左旋转list中数据。
* public static void reverse(List list),翻转list中数据。
15.3堆栈
- 创建堆栈对象java.util包
Stack<E> - 压栈操作
public E push(E item ) - 弹栈操作
public E pop(); - 判断是否有数据
public boolean empty();有数据返回false,无返回true。 - 获取堆栈顶端数据,但不删除数据
public E peek(); - 获取数据在堆栈中的位置,最顶端为1,向下依次累加,无则返回-1
public int search(Object data);
15.4散列映射
- 用HashMap<K,V>泛型类创建的对象称作散列映射。
- 常用方法(p452)
* public void clear()
* public Object clone()
* public Boolean containsKey(Object key)
* public Boolean containsValue(Object value)
…… - 遍历散列映射
- 基于散列映射的查询
15.5树集
- TreeSet创建树集。
- 树集用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() 返回树集中节点的数目。
15.6树映射
- TreeMap<K,V>类实现了Map<K,V>接口,称TreeMap<K,V>对象为树映射。
- public V put(K key,V value); 添加节点。
15.7自动装箱与拆箱
- JDK1.5新增的基本类型数据和相应的对象之间相互自动转换的功能,称作基本数据类型的自动装箱与拆箱(Autoboxing and Auto-Unboxing of Primitive Types)。
教材学习中的问题和解决过程
问题1:

问题1在cmd中尝试运行

问题2:从上图可见,出现编码JBK的不可映射字符问题
问题2解决方案:编码JBK的不可映射字符
使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
另一种思路

代码托管

学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 51/51 | 1/1 | 12/20 | Java的重要起步 |
| 第二周 | 460/511 | 2/3 | 30/32 | Java的简单语句学习 |
| 第三周 | 803/1314 | 2/5 | 25/57 | Java的基础学习 |
| 第四周 | 485/1699 | 1/6 | 20/77 | Java的子类与继承 |
| 第五周 | 393/2092 | 1/7 | 20/97 | Java的接口与实现 |
| 第六周 | 156/2321 | 2/9 | 18/115 | 内部类和异常类、输入输出流 |
| 第七周 | 1225/3546 | 2/11 | 20/135 | 常用类及方法 |
| 第八周 | 487/4032 | 2/13 | 20/155 | 泛型与集合框架 |
参考资料
20175234 2018-2019-2 《Java程序设计》第八周学习总结的更多相关文章
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 20175234 2018-2019-2 《Java程序设计》第九周学习总结
目录 20175234 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码托管 感想 学习进度条 参考资料 20175234 2 ...
- 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结
<面向对象程序设计Java>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- Android中的透明度
最近在实践中,在一个设置了背景图的LinearLayout中放一个透明度15%,背景色为#ffffff的容器,里面再放白色#ffffff的文本,开始容器用background="#fffff ...
- Android View添加删除或隐藏显示的默认动画;
代码中给控件设置Visibility ? VISIBLE : GONE ;时太生硬,用户体验不好:设置一个Android ViewGroup的默认动画很实用: 给需要添加动画的控件或布局的父布局,记住 ...
- Springboot+ mybatis+ mysql配置@Slf4j
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver # 驱动 name: testDB # 配置名,可以随便写 userna ...
- [Nginx]Nginx的一些概念
Nginx 关注:一.性能 1)高并发下资源不浪费在处理进程切换休眠等,保持高的吞吐量 2)高并发下如何保持平均时延低 3)提高网络效率,例如长连接代替短链接,高压缩算法提高信息量,使用缓存减少 ...
- Centos7的防火墙关闭
第一步.centos7安装service 第二步. 或者可以不用service,有另一个办法.
- Vsftpd服务重启、暂停命令
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 在使用Vsftp服务是经常需要启动.停 ...
- Linux su命令
本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行, ...
- css样式基础详解
一.字体属性:(font) 1.大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 2.样式 {font-styl ...
- Windows终端工具_MobaXterm
前言 有人喜欢小而美的工具,有人喜欢大集成工具.这里推荐一款增强型的Windows终端工具MobaXterm,它提供所有重要的远程网络工具(SSH,X11,RDP,VNC,FTP,MOSH ..... ...
- Day01 -Class类别 精选面试题
30天修炼完成Ruby精选面试题! 我决定从学习Ruby on Rails开始着手!鼓励自己在短期间内专心学习与产出知识,为转职奠定良好的基础. A.首先:找寻方向,决定主题 我想很多人的状况都跟我一 ...