JAVA之ArrayList使用

import java.util.ArrayList;或者import java.util.*;

1.定义和初始化
(1)创建空列表,然后逐一添加

ArrayList L=new ArrayList();
L.add(1);L.add("abc");

(2)格式化添加

ArrayList L=new ArrayList(){add(1);add("bc");}};

(3)将Collection作为参数传递进来

ArrayList L=new ArrayLIst(Arrays.asList(1,2,"bc"));
ArrayList L=new ArrayLIst(Arrays.asList("a,b,c".split(",")));
int[] x={1,2,3};
ArrayList L=new ArrayLIst(Arrays.asList(x));

2.新增
(1)添加到末尾 L.add(“a”);
(2)添加到指定位置 L.add(pos,“a”); L.add(pos,Collection x);
3.删除
(1)删除第一个匹配的元素 L.remove(“a”);
(2)删除指定位置的元素 L.remove(pos);

这里存在一个问题,如果ArrayList里面存的本来就是数字,那remove(1)只会删掉位置为1的元素,不会删掉数字是1的元素,如果想删掉应该这么写:L.remove((Integer)1);

4.访问元素 L.get(pos); //以下标来访问
5.查询元素 L.indexOf(“a”); //没有会返回-1
6.获取大小 L.size();
7.清空 L.clear();
8.判断是否为空 L.isEmpty();
9.打印
(1)逐个遍历然后打印

for(int i=0;i<L.size();i++)
	System.out.println(L.get(i));

(2)直接打印

System.out.println(L);

10.遍历
(1)Iterator迭代器

Integer value=null;
Iterator iter=L.iterator();
while(iter.hasNext())
{
	value=(Integer)iter,next();
	System.out.println(value);
}

(2)for循环

for(int i=0;i<L.size();i++)
	System.out.println(L.get(i));

(3)foreach循环

for(Integer i:L)
	System.out.println(i);

11.ArrayList和数组的互相转换

  • 数组转ArrayList
1)ArrayList L=new ArrayList(Arrays.asList(x));2)ArrayList L=new ArrayList();
 	 Collections.addAll(L,x);
  • ArrayList转数组
 Integer[] x=(Integer[]) L.toArray(new Integer[0]);
 String[] x=(String[]) L.toArray(new String[0]);
  • ArrayList转String
 String str=StringUtils.join(L,",");

12.线程安全
ArrayList线程不安全,线程之间互相操作可能会擦除数据。解决方法有两种:
(1)继承ArrayList并重写方法,加上synchronized关键字。
(2)List list=Collections.synchronizedList(new ArrayList());

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章