一、集合
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.