1 String 对正则表达式的支持
.matches() 匹配正则表达式
.split("[,\s\|]") 切分字符串为字符串数组
.replaceAll()
Integer.parseInt() 转换到字符串到整数: 如: "23"-> 23
2 StringBuilder 和 StringBuffer
String = char[] + 操作(复制创建新对象)
StringBuilder=char[] + 对char[]操作(处理当前数组内容)
StringBuilder 内部的char[]数组内容可变, 如果长度不够, 利用变长算法维护, 自动扩容长度.
1) StringBuilder 是变长字符序列
2) StringBuilder 方法:append,insert ... 都返回当前 StringBuilder 对象本身的引用。
3) 如果软件需要大量字符串处理时候建议使用StringBuilder"A" + "B"
4) String s = s1+s2; Java实际上才是如下代码运行:
String s=new StringBuilder(s1).append(s2).toString();
String s = s1+s2+s3+s4; 被优化为
String s = new StringBuilder(s1)
.append(s2).append(s3).append(s4).toString();
s+="a";//会产生两个新对象(StringBuilder, String)
StringBuilder buf=new StringBuilder();
buf.append("a");
buf.append("a");
5) StringBuffer 和 StringBuilder API几乎一样!
StringBuffer 是java早期提供的,速度稍慢,线程安全
StringBuilder 是Java5 以后提供的,速度快,非线程安全
3 线性表: List, 表示有先后次序的对象集合, 歌曲列表
ArrayList = Object[] + 线性表操作(增删改查)
StringBuilder = char[] + 操作(增删改查)
ArrayList(1.2以后新的) 是使用变长数组算法实现的List (线性表方法)
Vector(1.0) 是使用变长数组算法实现是 List 矢量 向量
LinkedList 是采用双向循环链表实现的List
List 集合的实现
1 LinkedList 采用双向循环链表实现
2 ArrayList 变长数组算法实现 新的 快 非线程安全
3 Vector 变长数组算法实现 早期提供 慢 线程安全
List的add方法与addAll方法的区别
示例:
Collection result = new ArrayList();
Collection list = new ArrayList();
分析:
result.addAll(list);//把list中的每一个元素加到result中,result.size()==list.size()
result.add(list);//将list作为一个元素加到result中,则result.size()为1