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入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- uva_answers
uva202: https://blog.csdn.net/lecholin/article/details/70163148 uva1589: https://blog.csdn.net/qq_42 ...
- rabbitmq (五)RPC
Remote Procedure Call or RPC(远程函数调用) 当我们需要在远程计算机上运行一个函数,并且等待结果的时候,我们用到RPC 在rabbitmq客户端使用call函数,发送RPC ...
- git 推送远程仓库和删除远程仓库文件
提交到远程仓库需要现在GitHub或gitlab上创建项目,然后才能连接到远程仓库 1.连接远程仓库 # git remote add origin https://github.com/xxxxx ...
- python中令人惊艳的小众数据科学库
Python是门很神奇的语言,历经时间和实践检验,受到开发者和数据科学家一致好评,目前已经是全世界发展最好的编程语言之一.简单易用,完整而庞大的第三方库生态圈,使得Python成为编程小白和高级工程师 ...
- Picasso, ImageLoader, Fresco, Glide 优劣
Fresco:是Facebook 在今年上半年开源的图片缓存优点:1. 图片存储在安卓系统的匿名共享内存, 而不是虚拟机的堆内存中, 图片的中间缓冲数据也存放在本地堆内存,所以, 应用程序有更多的内存 ...
- 一行js代码识别Selenium+Webdriver及其应对方案
有不少朋友在开发爬虫的过程中喜欢使用Selenium + Chromedriver,以为这样就能做到不被网站的反爬虫机制发现. 先不说淘宝这种基于用户行为的反爬虫策略,仅仅是一个普通的小网站,使用一行 ...
- python大法好——操作mysql
python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...
- 逃逸分析(Escape Analysis)
一.什么是逃逸 逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到:这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量 ...
- Spring-boot中@ConfigurationProperties,@Value,@PropertySource
1.利用@ConfigurationProperties获取配置的值,@ConfigurationProperties是springboot提供的基于安全类型的配置放置. application.pr ...
- linux上如何设置网络,出现connect: network is unreachable 的问题。
发现有网友问有关ping命令出现connect: network is unreachable 的问题. 这通常是因为没正确设置ip地址. 解决方法: 在确保完善网卡驱动,以及确保将网卡驱动编译进内核 ...