利用ArrayList做一个简单的记事本
利用ArrayList容器可以解决:利用数组可能会因为数组大小开的不够大溢出的问题。而利用容器,则可以不用担心会溢出的问题,因为ArrayList容器可以存放无限的东西,具体的简单应用如下代码所示:
package b.others;
import java.util.ArrayList;
public class Notebook {
private ArrayList<String> notes = new ArrayList<String>();//建立ArrayList容器,里面存放字符串类型,可以不受限制大小;
public void add(String s){
//添加内容(字符串);
notes.add(s);
}
public void add(String s,int location){
//把字符串加到某个位置前面;
notes.add(location,s);
}
public int getSize(){
//计算容器现在的大小(长度)
return notes.size();
}
public String getNode(int index){
//取出对应位置上的内容;
return notes.get(index);
}
public void removeNode(int index){
//删除对应位置上的内容;
notes.remove(index);
}
public String[] list(){
//将容器内的数据,都赋值给字符串数组;
String[] a =new String[notes.size()];
// for (int i=0;i<notes.size();i++)
// {
// a[i]=notes.get(i);
// }与下面这一行语句功能相同
notes.toArray(a);//直接利用其自带函数将容器内的字符串赋给a字符串数组;
return a;
}
public static void main(String[] args){
Notebook nb=new Notebook();
nb.add("first");//在容器内加入first;
nb.add("second");//在容器内加入second;
nb.add("third",1);//在容器标号为1的位置前插入third;
System.out.println(nb.getSize());//输出容器的大小;
System.out.println(nb.getNode(0));//输出第0号位置的内容;
System.out.println(nb.getNode(1));//输出第1号位置的内容;
//System.out.println(nb.getNode(10));//会造成下标越界,因为容器的第11个位置并没有内容;
nb.removeNode(1);//删除位置1的内容;
String[] b=nb.list();//将从容器中取出的内容给到字符串数组b;
for (String s:b)//利用for-each语句输出字符串数组中所有的内容;
{
System.out.println(s);
}
}
}
输出为:
3
first
third
first
second
结尾
希望对大家有帮助!!!
有问题可在下面留言,谢谢…