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. cocos2d-2.0-x-2.0.4生成vs2010项目模板的解决方法

    cocos2d教学书籍还有网上好多博主都说仅仅要执行一下install-templates-msvc.bat这个批处理文件即可了.但是我按了半天vs2010就是不出现令小伙伴惊喜的cocos2d wi ...

  2. git branch merge到master

    使用merge可以合并多个历史记录的流程. 如下图所示,bugfix分支是从master分支分叉出来的. 合并 bugfix分支到master分支时,如果master分支的状态没有被更改过,那么这个合 ...

  3. CFindReplaceDialog学习

    The CFindReplaceDialog class allows you to implement standard string Find/Replace dialog boxes in yo ...

  4. linux 下Shell编程(四)

    for循环应用实例 for 循环可以对一个记录集中地数据依次集中地数据依次进行处理. #!/bin/bash #4.13.sh for clear     #看下图区别 for((i=1:i<1 ...

  5. 《从零开始学Swift》学习笔记(Day 26)——可选链

    原创文章,欢迎转载.转载请注明:关东升的博客 在Swift程序表达式中会看到问号(?)和感叹号(!),它们代表什么含义呢?这些符号都与可选类型和可选链相关,下面来看看可选链. 可选链: 类图: 它们之 ...

  6. 01-K Code

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  7. 160816、webpack 入门指南

    什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...

  8. 迷宫问题(java实现)

    1. public class Direction { private int x; private int y; public Direction(int x, int y) { this.x = ...

  9. influxDB 变换类函数

    1.DERIVATIVE()函数 作用:返回一个字段在一个series中的变化率. InfluxDB会计算按照时间进行排序的字段值之间的差异,并将这些结果转化为单位变化率.其中,单位可以指定,默认为1 ...

  10. pycharm中格式标准化代码

    点击之后,可以使代码标准化