Java学习 ArrayList

一、简介

如果要存放多个对象,可以使用数组,但是数组有局限性。比如声明长度是10的数组,不用的数组就浪费了,超过10的个数,又放不下。

为了解决数组的局限性,引入容器类的概念。 最常见的容器类就是ArrayList。容器的容量"capacity"会随着对象的增加,自动增长,不会出现数组的越界问题。

二、ArrayList常用方法

public class TestCollection {

	public static void main(String[] args) {
		ArrayList<Hero> heroes = new ArrayList<>();
		Hero h = new Hero("hh");
		heroes.add(new Hero("alpha"));	//把对象添加在集合最后面		
		heroes.add(new Hero("bravo"));		
		heroes.add(1, new Hero("charlie"));	//把对象添加在集合中1的位置		
		heroes.add(h);
		System.out.println(heroes.size());	//获取集合的大小
		
		System.out.println(heroes.toString());
		System.out.println("使用增强型for循环遍历集合元素:");
		for (Hero hero : heroes) {
			System.out.println(hero);
		}
		System.out.println("使用普通for循环遍历集合元素:");
		for(int i=0; i<heroes.size(); i++) {
			System.out.println(heroes.get(i));
		}
		System.out.println("使用Iterator遍历集合元素:");
		for(Iterator<Hero> it = heroes.iterator(); it.hasNext(); ) {
			Hero hero = (Hero) it.next();
			System.out.println(hero);
		}
		System.out.println(heroes.contains(h));	//判断一个对象是否在集合中,判断标准: 是否是同一个对象,而不是name是否相同
		
		System.out.println(heroes.get(2));	//获取指定位置的对象,如果输入的下标越界,一样会报错
		System.out.println("hh所处的位置:"+heroes.indexOf(h));	//获取一个对象在集合中的位置,判断标准是对象是否相同,而非对象的name值是否相等
		System.out.println("新的英雄,名字也是\"bravo\"所处的位置:"+heroes.indexOf(new Hero("bravo")));	//找不到返回-1
		heroes.remove(2);	//根据下标删除集合中的元素
		heroes.remove(h);	//把对象从集合中删除
		System.out.println(heroes.toString());
		heroes.set(0, h);	//替换指定位置的元素
		System.out.println(heroes.toString());
		Hero[] hs = (Hero[]) heroes.toArray(new Hero[]{});	//toArray可以把一个ArrayList对象转换为数组
		System.out.println(hs);
		heroes.clear();	//清空一个集合,输出结果为[]
		List<Hero> hero1 = new ArrayList<>();
		hero1.add(new Hero("Delphi"));
		System.out.println(heroes.toString());
		System.out.println(hero1.toString());
	}

}

三、打印结果

猜你喜欢

转载自blog.csdn.net/babo18/article/details/114262447