关于ArrayList的使用总结

1,List接口的特点: 连续的,不唯一的存储数据

所以ArrayList也包括了这些特点

由于它在内存空间是开辟一组连续的空间数组进行存储

所以它 适合查询和遍历对象等功能,它能用的 遍历方法
a普通for循环
b加强型for
c迭代器


2,ArrayList包括的所有方法:

清空集合clear()

添加方法add(Object o);

                add( int index , Object o );

获取长度方法: size();

获取具体下标 内容方法: get( int index );

查询是否包含某对象的方法: contains( Object o );

删除某个对象的方法: remove( Object o );
                                remove(
int index );

替换给某个对象的方法:set(int index,Object o);

实例:

public class NewsArrayList {
public static void main(String[] args) {
//创建几个新闻对象,新闻类包括了,ID,内容,作者
News news = new News(1, "北京终于放晴了!", "新闻社");
News news2 = new News(2, "香港回归纪念日", "人民新闻");
News news3 = new News(3, "假奶粉事件曝光", "人民新闻网");

//创建集合,用list有序,不唯一最合适,适合读取和访问
//可以用List父类指向子类引用,也可以直接用ArrayList直接new
//不过用Llst创建的集合,不能使用ArrayList特有的方法,请注意
ArrayList<News> list = new ArrayList<News>();

//用创建的集合对象调用集合的添加方法,将新为闻对象添加进集合
list.add(news);
list.add(news2);
list.add(news3);

//模拟用户读取新闻的模式
//将每个新闻标题和作者都遍历出来,可以用for循环
//用集合带有的size()方法可以输出集合的长度
for (int i = 0; i < list.size(); i++) {
//逐条遍历出所有的对象,再用对象调用自己的属性
//原本这里用get方法返回的是object对象,但因为我们前面使用泛型规定了集合存储的类型
//这里返回给我们的只会是规定的News,所以我们就不用再强制转换类型
System.out.println(list.get(i).getID()+"\t"+list.get(i).getLitter()+"\t"+list.get(i).getAuthor());
}
System.out.println("*****************************************");
//除了用普通for循环我们还可用加强型for循环来输出
//本来这里的News是object类型,n也是object类型的引用,但是用了泛型规定了类型,所以可以直接用NewsL来接受
for (News n:list) {
System.out.println(n.getID()+"\t"+n.getLitter()+"\t"+n.getAuthor());
}
System.out.println("*****************************************");
//除了增强型for以外我们还可以用迭代器来进行遍历功能
//迭代器是集合父类自带的方法
//首先创建迭代器it
Iterator<News> it = list.iterator();
//迭代器的hasNext()方法是判断是否有下一个迭代的坐标,有就返回一个Boolean的true标记
while (it.hasNext()) {
//迭代器的Next()方法是如果有可迭代的坐标就就获取该坐标的值
//同理这里本来也是返回object的对象,但是使用的泛型,所以可以直接接受
News ne = it.next();
System.out.println(ne.getID()+"\t"+ne.getLitter()+"\t"+ne.getAuthor());
}
System.out.println("*****************************************");
//假如用户要添加新闻,有两种添加方法
//1,正常添加,系统默认从末尾添加
list.add(null);
//2,指定位置添加,体统会将用户插入的数据放在指定位置,将原位置的数据和它后面的数据的存储做坐标都往后移动一位
list.add(1, null);

//用户想知道总共的存储了多少天的新闻,我们就可以将集合的长度返回给用户
list.size();

//用户想获取具体某天的新闻,我们可以用get()获取指定对象的方法返回给他
list.get(0);

//用户想判断是否有录入具体某天的新闻,我们就可以用contains()方法,将输入的数据个跟集合内数据进行逐条比较查询
//判断是否有该对象,返回Boolean类型的值
list.contains(news);

//用户想删除具体某天的新闻,可以用Remove()方法删除具体对象,有两种删除方法,删除后后面的信息会自动往前补上
//1,输入具体对象进行删除
list.remove(news);
//2,输入集合下标,删除下标对应的对象,起始索引位置是从0开始进行的
list.remove(0);

//假如用户需要更改某天的新闻,我们就可以用set()方法将新的新闻取替换原来的新闻
list.set(2, news3);
}
}


猜你喜欢

转载自blog.csdn.net/jinqianwang/article/details/80028071
今日推荐