用ArrayList来实现MyStringBuffer
MyStringBuffer练习,但是不使用字符数组,而是使用ArrayList来实现
实现代码如下:
IStringBuffer.java
package j2se;
public interface IStringBuffer {
public void append(String str);//追加字符串
public void append(char c);//追加字符
public void insert(int pos, char b);//指定位置插入字符
public void insert(int pos, String b);//指定位置插入字符串
public void delete(int start);//从开始位置删除剩下的
public void delete(int start, int end);//从开始位置删除结束位置-1
public void reverse();//反转
public int length();//返回长度
}
CollectionMyStringBuffer.java
package j2se;
import java.util.ArrayList;
public class CollectionMyStringBuffer implements IStringBuffer{
ArrayList list = new ArrayList();
public void append(String str) {
if (str == null) {
return;
}
list.add(str);
}
public void append(char c) {
list.add(c);
}
public void insert(int pos, char b) {
if (pos < 0 || pos > list.size()) {
return;
} else {
list.add(pos, b);
}
}
public void insert(int pos, String b) {
if (pos < 0 || pos > list.size()) {
return;
} else {
list.add(pos, b);
}
}
public void delete(int start) {
delete(start, list.size());
}
public void delete(int start, int end) {
if (start < 0 || start > list.size() || start > end) {
return;
} else if(end > list.size() || end < 0) {
return;
} else {
for (int i = start; i < end; i++) {
list.remove(start);
}
}
}
public void reverse() {
for (int i = 0; i < list.size()/2; i++) {
char temp = (char)list.get(i);
list.set(i, list.get(list.size() - 1 - i));
list.set(list.size() - 1 - i, temp);
}
}
public int length() {
return list.size();
}
public static void main(String[] args) {
CollectionMyStringBuffer t = new CollectionMyStringBuffer();
t.append('1');
t.append('2');
t.append('3');
t.append("45");
System.out.println("加入数字后:" + t.list.toString());
t.delete(3);
System.out.println("删除3位置往后的:" + t.list.toString());
t.delete(1,2);
System.out.println("删除1到2位置(2位置取不到):" + t.list.toString());
t.append('1');
t.append('2');
t.append('3');
System.out.println("加入后一些新的数后:" + t.list.toString());
t.reverse();
System.out.println("反转:" + t.list.toString());
System.out.println(t.length());
}
}
运行页面