您的位置:首页 > 编程语言 > Java开发

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

2018-01-03 21:58 363 查看
一、集合

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:链表(功能:实现双向链表;优点:插入或删除元素效率高,查找元素时效率低)





二、正则表达式

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



表2



Copyright © 2018 Jin Hanquan. All rights reserved.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息