(四)String、List


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值