用ArrayList来实现MyStringBuffer

用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());
	}
}


运行页面
用ArrayList来实现MyStringBuffer_第1张图片

你可能感兴趣的:(Java基础)