标签:list 线程不安全 java 集合 arraylist
ArrayList是List接口的实现类,支持List接口的全部功能,ArrayList类是基于数组实现的List类,在内部封装了一个动
态的、允许再分配的Object[]数组。ArrayList是线程不安全的,当多个线程访问同一个ArrayList集合时,如果有超过
一个线程修改了ArrayList集合,则程序必须手动保证该集合的同步性。
以下是ArrayList类的绝大部分方法:
public class Main { public static void main(String[] args) { ArrayList list=new ArrayList(); /* * boolean add(E e) * 将指定的元素添加到此列表的尾部。 */ list.add("Jack"); //输出:[Jack] System.out.println(list); /* * void add(int index, E element) * 将指定的元素插入此列表中的指定位置。 * 向右移动当前位于该位置的元素(如果有) * 以及所有后续元素(将其索引加 1)。 * 如果索引超出范围 (index < 0 || index > size()) * 抛出IndexOutOfBoundsException异常 */ list.add(1, 8); //输出:[Jack, 8] System.out.println(list); /* * boolean addAll(Collection<? extends E> c) * 按照指定 collection 的迭代器所返回的元素顺序, * 将该 collection 中的所有元素添加到此列表的尾部。 * 如果指定的 collection 为 null,抛出NullPointerException 异常 */ ArrayList addlist= new ArrayList(); addlist.add("Ok"); list.addAll(addlist); //输出;[Jack, 8, Ok] System.out.println(list); /* * boolean addAll(int index, Collection<? extends E> c) * 从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。 */ list.addAll(1, addlist); //输出:[Jack, Ok, 8, Ok] System.out.println(list); /* * Object clone() * 返回此 ArrayList 实例的浅表副本。 */ ArrayList cloneList=(ArrayList) list.clone(); cloneList.add("clone"); //输出:[Jack, Ok, 8, Ok, clone] System.out.println(cloneList); //输出:[Jack, Ok, 8, Ok] System.out.println(list); /* * boolean contains(Object o) * 如果此列表中包含指定的元素,则返回 true。 */ //输出:true System.out.println(list.contains("Jack")); /* * void ensureCapacity(int minCapacity) * 如有必要,增加此 ArrayList 实例的容量, * 以确保它至少能够容纳最小容量参数所指定的元素数。 */ list.ensureCapacity(6); /* * E get(int index) * 返回此列表中指定位置上的元素。 */ //输出:Ok System.out.println(list.get(1)); /* * int indexOf(Object o) * 返回此列表中首次出现的指定元素的索引, * 或如果此列表不包含元素,则返回 -1。 */ //输出:0 System.out.println(list.indexOf("Jack")); /* * boolean isEmpty() * 如果此列表中没有元素,则返回 true */ //输出: false System.out.println(list.isEmpty()); /* * int lastIndexOf(Object o) * 返回此列表中最后一次出现的指定元素的索引, * 或如果此列表不包含索引,则返回 -1。 */ //输出:3 System.out.println(list.lastIndexOf("Ok")); /* * E remove(int index) * 移除此列表中指定位置上的元素。 */ list.remove(1); //输出:[Jack, 8, Ok] System.out.println(list); /* * boolean remove(Object o) * 移除此列表中首次出现的指定元素(如果存在)。 */ //输出:false System.out.println(list.remove("A")); /* * E set(int index, E element) * 用指定的元素替代此列表中指定位置上的元素。 */ list.set(2, "Second"); //输出:[Jack, 8, Second] System.out.println(list); /* * int size() * 返回此列表中的元素数。 */ //输出:3 System.out.println(list.size()); /* * Object[] toArray() * 按适当顺序(从第一个到最后一个元素) * 返回包含此列表中所有元素的数组。 */ Object[] obj=list.toArray(); //Jack 8 Second for(Object ob:obj){ System.out.println(ob); } /* * void clear() * 移除此列表中的所有元素。 */ list.clear(); //输出:[] System.out.println(list); } }
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/44119479 情绪控_
标签:list 线程不安全 java 集合 arraylist
原文地址:http://blog.csdn.net/hai_qing_xu_kong/article/details/44119479