ArrayList集合的理解

 

为什么会出现集合类:
 *       因为我们学习的Java语言是面相对象的编程语言,
 *       而面相对象编程语言对事物的描述都是通过对象来体现的,我们为了
 *   方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想
 *   对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型
 *   的变量。
 *   到目前为止我们学习过那些容器类型的数据呢?
 *   Stringbuilder、数组。    StringBuilder的结果是一个字符串类型不能满足我们的需求
 *   ,所以,我们目前只能选择数组,即对象数组。但是数组的长度是固定的,适应不了需求,
 *   所以集合类就出现了。
 *   ArrayList的特点:
 *           长度可变
 *   ArrayList<E>;
 *   大小可变数组的实现
 *   <E>是一种特殊的数据类型,泛型。
 *   如何使用呢?
 *           出现E的地方我们使用引用数据类型即可。
 *   举例:ArrayList<String>
 *   注意,此实现不是同步的。如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,
 *   那么它必须 保持外部同步。(结构上的修改是指任何添加或删除一个或多个元素的操作,或者显式调整底层数组的大小;
 *   仅仅设置元素的值不是结构上的修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,
 *   则应该使用 Collections.synchronizedList 方法将该列表“包装”起来。这最好在创建时完成,以防止意外对列
 *   表进行不同步的访问:
 *     List list = Collections.synchronizedList(new ArrayList(...)); 
 *     此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自
 *  身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会
 *    抛出 ConcurrentModificationException。因此,面对并发的修改,迭代器很快就会完全失败,而不是
 *    冒着在将来某个不确定时间发生任意不确定行为的风险。
 *
 *       注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。
 *    快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正
 *    确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应该仅用于检测 bug。
 *
 *   构造方法摘要 
 *        ArrayList() 
 *            构造一个初始容量为 10 的空列表。 
 *添加元素的功能:
 *public boolean add(E e)将指定的元素添加到此列表的尾部。 
 *public void add(int index, E element)将指定的元素插入此列表中的指定位置。
 *            向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。   

public class ArrayListDemo {
	public static void main(String[] args) {
		//创建集合对象
		ArrayList<String> arrayList = new ArrayList<String>();
		arrayList.add("周星星");
		arrayList.add("helloword");
		System.out.println("arraylist:"+arrayList);
		System.out.println("=============================");
		arrayList.add(1, "没媳妇");
		System.out.println("arraylist:"+arrayList);
	}
}

ArrayList删改查方法
 *     A:获取元素
    public E get(int index):返回指定索引处的元素
    B:集合长度
    public int size():返回集合中的元素的个数
    C:删除元素
     public boolean remove(Object o):删除指定的元素,返回删除是否成功
    public E remove(int index):删除指定索引处的元素,返回被删除的元素
    D:修改元素
    public E set(int index,E element):修改指定索引处的元素,返回被修改的元素

public class ArrayListDemo2 {

	public static void main(String[] args) {
		//创建集合对象
		ArrayList<String> aList = new ArrayList<String>();
		//添加元素
		aList.add("hello");
		aList.add("java");
		aList.add("its me");
		System.out.println(aList);
		//A:获取元素
	    //public E get(int index):返回指定索引处的元素
		System.out.println(aList.get(0));
		System.out.println(aList.get(1));
		System.out.println(aList.get(2));
		//B:集合长度
		//public int size():返回集合中的元素的个数
		System.out.println(aList.size()+"个");
		//C:删除元素
		//public boolean remove(Object o):删除指定的元素,返回删除是否成功
		System.out.println(aList.remove(" "));
		//public E remove(int index):删除指定索引处的元素,返回被删除的元素
		System.out.println(aList.remove(1));
		//D:修改元素
		//public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
		System.out.println(aList.set(1, "Android"));
		for (int i = 0; i < aList.size(); i++) {
			String string = aList.get(i);
			System.out.println(string);
		}
	}

}

ArrayList集合的遍历 


/*
 * ArrayList集合的遍历
 */
public class ArrayListDemo3 {

	public static void main(String[] args) {
		ArrayList<String> arrayList = new ArrayList<String>();
		arrayList.add("hello");
		arrayList.add("word!");
		arrayList.add("java");
		for (int i = 0; i < arrayList.size(); i++) {
			String string = arrayList.get(i);
			System.out.println(string);
		}
	}

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值