JavaDay09--Notes(集合的框架与toString方法+正则表达式的元字符)

一、集合

1. toString方法

代码:

       Collectionc = new ArrayList();

       c.add("hello");

       c.add("world");

       c.add("java");

       System.out.println(c);

      

为什么c输出的不是地址值呢?

       A:Collectionc = new ArrayList();

              这是多态,所以输出c的toString()方法,其实是输出ArrayList的toString()

       B:看ArrayList的toString()

              而我们在ArrayList里面却没有发现toString()。

              以后遇到这种情况,也不要担心,你认为有,它却没有,就应该去它父类里面看看。

       C:toString()的方法源码

              public String toString() {

              Iterator<E> it = iterator(); //集合本身调用迭代器方法,得到集合迭代器

              if (! it.hasNext())

                  return "[]";

                     StringBuilder sb = new StringBuilder();

              sb.append('[');

              for (;;) {

                  E e = it.next();//e=hello,world,java

                  sb.append(e == this ? "(thisCollection)" : e);

                  if (! it.hasNext())

                    //[hello,world, java]

                      returnsb.append(']').toString();

                  sb.append(',').append(' ');

              }

          }


2. 框架

接口>实现类>算法
collection:最大的单值接口
collections:算法/方法
ArrayList:数组(优点:通过索引位置快速定位对象)
LinkedList:链表(功能:实现双向链表;优点:插入或删除元素效率高,查找元素时效率低)

JavaDay09--Notes(集合的框架与toString方法+正则表达式的元字符)


JavaDay09--Notes(集合的框架与toString方法+正则表达式的元字符)

二、正则表达式

1. 元字符举例
d/D digital
s/S space
\\:普通斜线
\w:数字字符
\|:“分割”字符
\number:反向引用第number个分组(如\1:反向引用前一个分组)

String regex="(字符串\\d+)";
\\捕获组
String regex="(字符串\\d+?)";
\\非捕获组

String str="abbbb";
//贪婪模式匹配: (#)
str.replaceAll("ab+","#");
非贪婪模式匹配: (#bbb)
str.replaceAll("ab+?","#");

Pattern pat=Pattern.compile(regex);
Matcher mat=pat.matcher(str);
\\将字符串调入正则表达式中
while(mat.find()){
mat.group(0);
\\正向引用分组

str.replaceAll(X);\\将字符串全部替换为X
str.split(X)         \\删除字符X

2. 元字符总结表格

表1

JavaDay09--Notes(集合的框架与toString方法+正则表达式的元字符)

表2

JavaDay09--Notes(集合的框架与toString方法+正则表达式的元字符)



Copyright © 2018 Jin Hanquan. All rights reserved.