20165101刘天野 2017-2018-2 《Java程序设计》第6周学习总结


教材学习内容总结

第八章:常用实用类

String类:不可变类,一些看起来能够改变String的方法其实都是创建了一个带有方法所赋予特性的新String。StringBuffer类为字符串缓冲类,可变。

String类覆盖了Object类的equals()方法,而StringBuffer没有。String类的toString()方法是返回当前String实例本身的引用,而StringBuffer类的toString()方法返回的则是当前缓冲区中所有字符内容的新的String对象的引用。使用StringBuffer可以减少JVM创建String对象的次数,减少动态分配和回收内存的次数,提高程序的性能。

Scanner类:获取用户的输入

Math类:数学运算类

Random类:生成随机数

Data类:以毫秒数表示特定的日期。sysout(new Date()) 返回系统日期

DataFormat类:用于定制日期的格式。

Calendar类:设置和读取日期的其中一部分。

BigDecimal类:精准计算

第十五章:泛型与集合框架

一、集合框架

1、集合类的出现:面向对象语言对事物的体现的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

2、数组与集合的异同:数组和集合同是容器,数组既能存储基本数据类型,也能存储对象,集合只能存储对象,数组的长度是固定的,集合的长度是可变的,数组内存储的对象类型在创建时就已经确定了,而集合可以存储多种不同类对象。

3、集合类中有众多的子类对象,它们作为容器对数据的存储方式都不同,这种方式叫做数据结构。

二、Collection

Collection是集合的根接口,其中定义了集合这一体系的共性功能,在集合中存储的都是对象的引用,既地址。

1、增加:往集合中加入元素的方法有add、addAll,其中add方法的参数类型是object,以便于接收任意类型的对象,addAll方法的参数类型是集合,用于将集合中的元素全部加入到指定集合中,这两种方法的返回值类型均为boolean。

2、删除:集合中控制删除的方法有remove、removeAll()、clear(),clear方法用于清空集合,没有具体的返回值类型,remove用于删除某个对象,removeAll用于删除集合参数内存在于调用该方法集合内的对象,这两种方法返回值类型均为boolean。

3、判断:contains方法有两个重载函数,用于判断是否存在某个对象或者某个集合。

4、获取:iterator方法获取迭代器用于取出集合中的元素。迭代器定义于集合内部,是一个内部类,这样就可以直接访问结合内部的元素,每一个容器的数据结构不同,所以取出的动作的细节也不同,但是都有共性的内容,判断和取出,将这么共性的内容进行抽取就形成了接口iterator。

5、查询:size方法用于获取集合元素的个数。

三、List

1、List类是Collection类一个子类,是一个抽象类,它存储对象的特点是有序的,元素可以重复,我们经常使用的List子类对象是ArrayList、LinkedList、Vector。因为List集合体系是有序列的,所以List集合可以通过角标操作集合内的元素。

四、Set

1、Set集合不同于List集合,它的元素是无序的,且不可重复,在Set集合中没有特殊的方法,全是实现的Collection的方法。常用的两个Set类结合有HashSet、TreeSet、

2、HashSet:底层是哈希表数据结构,线程非同步的,元素存入后按哈希值的大小存储。HashSet是保证元素唯一性依据的是hashCode和equals方法,如果元素的hashCode值一样,就会继续判断equals是否为true,如果hashCode值不同,不会调用equals方法。同样的在进行remove和contains方法时,会调用hashCode方法,如果没有相同的hashCode值,则不存在,如果有相同的hashCode值,会判断equals是否为true。

3、TreeSet:TreeSet集合的底层数据结构是二叉树,特点是可以对Set集合中的元素进行排序,进行排序的依据是存入的对象必须具有比较性,因此需要实现comparable,该接口可以强制让实现该接口的对象具有比较性,保证元素唯一性的依据是compareTo方法的返回值是0,TreeSet实现排序的方式有两种,一是实现comparable接口,覆盖compareTo方法,让元素自身具备比较性,这种方式也称为元素的自然顺序,或者叫默认顺序,第二种方式是当元素自身不具备比较性或者具备的比较性不是我们所需要的,那么我们就让集合自身具备比较性,定义一个比较器作为参数传递给集合的构造函数,这样集合在初始化时就具备了比较性。当两种排序都存在时,以比较器为主。

五、Map

1、Map集合中存储的是键值对,一对一对的往里存,并且要保证键值的唯一性。

2、Map集合的方法:

(1)增加:put(K key,V value)该方法会返回key值之前对应的value值。putAll方法则是将另一个Map集合中的键值对存储到指定集合中。

(2)删除:remove(K key)该方法在删除键的同时会同时返回对应的值。clear方法清空Map集合。

(3)判断:containsKey和containsValue方法分别判断指定Map集合中是否有对应的键值。

(4)查询:get(K  key)获取该键对应的值,values方法获取存储有所有值的collection集合,size方法获取Map集合的键值对个数。

(5)获取:主要有两种方法,keySet方法和entrySet,取出的原理就是将Map集合转成Set集合在遍历迭代器取出。

3、Map集合的常用子类对象:HashTable、HashMap、TreeMap,HashTable的底层数据结构是哈希表数据结构,不可以存入null键和null值,线程是同步的,HashMap的底层数据结构也是哈希表数据结构,它可以存入null键和null值,线程是非同步的,TreeMap的底层数据结构是二叉树,线程是非同步的,可以给Map集合中的键进行排序。我们可以通过get方法的返回值来判断一个键是否存在,如果返回值为null,则不存在该键。

代码托管

20165101刘天野 2017-2018-2 《Java程序设计》第6周学习总结的更多相关文章

  1. 20155326刘美岑 2016-2017-2 《Java程序设计》第二周学习总结

    20155326刘美岑 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 教材第三章主要讲解的是基础语法,主要包括认识类型与变量.学习运算符的基本使用.了解类型 ...

  2. 20155326刘美岑2016-2017-2《Java程序设计》第一周学习总结

    20155326刘美岑 2006-2007-2 <Java程序设计>第1周学习总结 教材学习内容总结 在老师的要求下我看了这门课的考察方式.这门课和以前上的课有些差别,成绩是由平时一点一点 ...

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

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

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

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

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

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  6. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  8. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  10. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

随机推荐

  1. 目标跟踪之klt---光流跟踪法

    近来在研究跟踪,跟踪的方法其实有很多,如粒子滤波(pf).meanshift跟踪,以及KLT跟踪或叫Lucas光流法,这些方法各自有各自的有点,对于粒子滤波而言,它能够比较好的在全局搜索到最优解,但其 ...

  2. C++11写算法之顺序查找

    从这篇博文起,将尝试使用C++11来写常用算法与数据结构. 本篇博文以最简单的顺序查找作为系列博文的起点,并作约定如下: 1,变量名 : varList : 函数名 : SequentialFind ...

  3. 【Unity】基于MVC模式的背包系统 UGUI实现

    前言 本文基于MVC模式,用UGUI初步实现了背包系统. Control层包括了点击和拖拽两种逻辑. 博文首发:http://blog.csdn.net/duzixi 下载地址:https://git ...

  4. [ACM] hdu 3923 Invoker (Poyla计数,高速幂运算,扩展欧几里得或费马小定理)

    Invoker Problem Description On of Vance's favourite hero is Invoker, Kael. As many people knows Kael ...

  5. hibernate 懒加载图解

  6. iOS Document Interaction 编程指南

    本文转载至 http://www.2cto.com/kf/201306/219382.html iOS支持在你的app中用其他app预览和显示文档.iOS还支持文件关联,允许其他app通过你的程序打开 ...

  7. Xmind 8 update 4 破解教程(破解补丁+破解步骤+下载地址)

    一.原始教程 原教程很详细,直接参考: http://www.voidcn.com/article/p-yyybmcqq-bnz.html 若无法访问请点击:http://df1551e3.wiz03 ...

  8. C#实体类序列化为XML

    这两天,应要求做一个C/S的小程序,考虑到程序简洁小巧,存数据的方式不使用数据库,而是直接存入XML文档中保存.为了把复杂实体类里面的属性存入XML,我们可以使用C#有的反射机制,做一个简单的通用工具 ...

  9. 阿里云 如何减少备份使用量? mysql数据库的完整备份、差异备份、增量备份

    RDS for MySQL备份.SQL审计容量相关问题_MYSQL使用_技术运维问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/4 ...

  10. BaseServlet 介绍

    1. BaseServlet 的作用 让一个Servlet可以处理多种不同的请求,不同的请求调用Servlet的不同方法. 2. 实现原理 客户端发送请求时, 必须多给出一个参数, 用来说明要调用的方 ...