Day01

双列集合:

  在现实生活中有些数据是以映射关系存在的,也就是成对存在的,比如夫妻等。单例集合无法表现出映射关系,所以学习双列集合。

  双列集合无迭代器。

1.Map

双列集合:

————————| Map 如果是实现了Map类接口的集合类,具备的特点:存储的数据都是以键值对的形式存在的,键不可重复,值可以重复。

————————————| Hashmap  底层也是基于哈希表实现的。

————————————| Treemap

————————————| Hashtable

1-1 HashMap

  基于哈希表的Map接口的实现。

HashMap的存储原理:

  往HashMap添加元素的时候,首先会调用hashcode方法得到元素的哈希吗值,然后经过运算就可以算出该元素在哈希表中的存储位置。

  情况一:如果算出的目前为止没有任何元素存储,那么该元素可以直接添加到哈希表中。

  情况二:如果算出的位置目前已经存在其他的元素,那么还会调用该元素的equals方法与这个位置上的元素进行比较,如果equals返回的是false,那么该元素允许被存储,如果equals方法返回的是true,那么该元素被视为重复元素,不允许存储。

迭代

方式一 keyset

方式二:values

方式三:entrySet

HashMap的存储原理

1-2 TreeMap

TreeMap也是基于红黑树(二叉树)数据结构实现的,特点:会对元素的键进行排序存储。

TreeMap要注意的事项:

  1.往TreeMap添加元素的时候,如果元素的键具备自然顺序,那么就会按照键的自然顺序特性进行排序存储。

  2.往TreeMap添加元素的时候,如果元素的键不具有自然顺序,那么键所属的类必须要实现Comparable接口,把键的比较规则定义在CompareTo方法上。

  3.往TreeMap添加元素的时候,如果元素的键本身不具有自然顺序,而且键所属的类也没有实现Comparable接口,那么就必须在创建TreeMap对象的时候创建比较器。

Day02

1.正则表达式

概念:

  正则表达式是用于操作字符串的一个规则,正则表达式的规则使用了特殊的符号表示。

正则表达式的语法:

(1)预定义字符

  预定义字符没有加上数量词之前都只能匹配一个字符而已。

(2)数量词

(3)范围词(写在中括号中)

正则表达式要注意的事项:

  1.没有数量词配合,都只能匹配一个。

  2.范围词里面不管内容有多长,没有数量词的配合都只能匹配一个字符而已。

正则表达式主要是用于操作字符串的规则,正则表达式对字符串的操作主要有以下几中应用:

1.匹配(matches)

2.切割(splite)

如果正则的内容需要被复用,那么需要对正则的内容进行分组,分组的目的是为了提高正则的复用性。组好不能自己指定,是从1开始的。

3.替换

String replaceAll(String regex, String replacement)
    使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

4.查找

查找需要使用的对象:

  1.Pattern (正则对象)

  2.Matcher(匹配器对象) 

  指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。

因此,典型的调用顺序是

Pattern p = Pattern.compile("a*b");
 Matcher m = p.matcher("aaaaab");
 boolean b = m.matches();

匹配器要使用到的方法:

  1.find()  通知匹配器去匹配字符串,查找符合规则的字符串。如果能查找到符合规则的字符串,返回true,否则返回false

  2.group()  获取符合规则的子串

注意:使用group方法的时候一定要先调用find方法让匹配器去查找符合规则的字符串,否则报错。

单词边界匹配器

  \b  单词边界匹配器只是代表了单词的开始或者结束部分,不匹配任何的字符。

需求:从网页上爬下的数据中提取出邮箱。

Java第四周学习日记的更多相关文章

  1. Java第四周学习日记(绪)

    1.静态导入 作用:简化书写静态导入可以作用一个类的所有静态成员静态导入格式:import static 包名.类名静态导入要注意的事项:如果静态导入的成员与本类的成员存在同名的情况下,那么默认使用本 ...

  2. 20165210 Java第四周学习总结

    20165210 Java第四周学习总结 教材学习内容 第五章学习总结 子类与父类: 子类: class 子类名 extends 父类名 { ... } 类的树形结构 子类的继承性: 子类和父类在同一 ...

  3. 20155327 java第四周学习笔记

    20155327 java第四周学习笔记 五六章知识整理 1子类与父类 父类是接口或者是抽象类,子类必须继承自父类. 2子类的继承性 在Java中,通过关键字extends继承一个已有的类,被继承的类 ...

  4. 20145304 Java第四周学习报告

    20145304<Java程序设计>第四周学习总结 教材学习内容总结 1.继承共同行为: 继承基本上就是避免多个类间重复定义共同行为,关键词为extends. 代码如下: //继承共同行为 ...

  5. JAVA 第四周学习总结

    20175303 2018-2019-2 <Java程序设计>第四周学习总结 教材学习内容总结 •用extends来定义一个类的子类. •Object类是所有类的祖先类. •如果子类和父类 ...

  6. 20165326 java第四周学习笔记

    第四周学习笔记 ch5 子类和父类 子类只能有一个父类 使用关键字extendsyclass 子类 extends 父类 系统默认的祖先类Object(java.lang包中) 继承:子类继承父类的方 ...

  7. 2016-2017-2 20155309南皓芯java第四周学习总结

    教材内容总结 这次我们学习的还是两章的内容,学习任务量跟上次比的话大体上来讲是差不多的. 继承与多态 继承 继承也符合DRY(Don't Repeat Yourself)原则 Role role1 = ...

  8. java第四周学习总结

    学号20145336 <Java程序设计>第4周学习总结 教材学习内容总结 继承 继承符合(Don't Repeat Yourself)原则,即在自己的代码中不要重复自己编写的信息,这在多 ...

  9. java第四周学习

    这一周学习的还是面向对象的方法和应用 Java中方法的使用和注意事项 如果没有返回值,就不允许通过return关键字返回结果 方法中不允许嵌套使用 Return返回值只允许返回一个值,不允许返回多个 ...

随机推荐

  1. 第一篇博客关于Log4net的配置记录

    说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...

  2. 邮件发送 EMailHelper

    引用: using System; using System.Collections.Generic; using System.Linq; using System.Net; using Syste ...

  3. 基本 XAML 语法指南

    我们介绍了 XAML 语法规则,以及用于描述 XAML 语法中存在的限制或选项的术语.当出现以下情况时你会发现本主题很有用:不熟悉 XAML 语言的使用,希望加强对术语或某些语法部分的理解,或者对 X ...

  4. Android-兼容问题

    兼容性问题从何而来?答:使用了低版本没有的功能,可是目标设备包括低版本. 那我们如何解决兼容性问题? 1.如果是JAVA代码 1.1 使用TargetApi(x)注解,避免Android Lint报错 ...

  5. Width vs Pitch

    1.单位不同,width是像素,pitch是字节.因此一个640*480的8位图和640*480的32位 图他们width一样而pitch不一样. 2.pitch可能大于width个像素所占字节数.w ...

  6. 3月25日html(六) Javascrip

                             第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与J ...

  7. php 输出昨天,今天,明天是星期几的方法

    <?php //php判断某一天是星期几的方法 function getWeek($unixTime=''){ $unixTime=is_numeric($unixTime)?$unixTime ...

  8. python修改txt文件内容

    ①以r模式打开文件并用readlines方法读入列表l中 ②修改相关行,直接用l[n]形式即可 ③关闭文件 ④以w方式打开文件,用writelines方法写入文件(覆盖文件内容) ⑤关闭文件 需要注意 ...

  9. 消息机制2 - Windows程序设计(SDK)005

    消息机制2 让编程改变世界 Change the world by program 内容节选: 关于消息机制,还有三点需要补充: 消息队列是FIFO的形式 WM_PAINT,WM_TIMER 和 WM ...

  10. select count(1) from table where ..这句sql语句的作用

    作用是计算一共有多少符合条件的行.1并不是表示第一个字段,而是表示一个固定值,count(1)和count(2)效果是一样的 count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过 ...