欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

ArrayList,

来源: javaer 分享于  点击 23987 次 点评:162

ArrayList,


java数组中最常用的一种,构造方法有三种.

  • ArrayList(int init) :init不赋值时构造一个空数组,默认容量大小为10. 否则容量大小为init.
  • ArrayList(Collection<? extends E> c):用Collection来构造数组
ArrayList的方法(较为常规的就不提及了)
  • boolean add(int index, E element) :在指定位置添加一个元素,不指定就在末尾添加。
  • boolean addAll(int index, Collection<? extends E> c) 在指定位置添加一个collection
  • clear() 清空list
  • Object clone() 对原来的ArrayList进行浅层复制。
    具体参考Java里的浅拷贝和深层拷贝区别(shadow copy, deep copy))
  • forEach() 遍历arrayList里的每个元素,对for循环的简写,forEach有点像python里面的lamda
正常的for循环
ArrayList a = new ArrayList();
a.add(1);
a.add(2);
for(Object item : a){
    System.out.println((int)item);
}
List<String> items = new ArrayList<>();
items.add("A");
items.add("B");
items.add("C");

//lambda
//Output : A,B,C
items.forEach(item->System.out.println(item));

//Output : C
items.forEach(item->{
    if("C".equals(item)){
        System.out.println(item);
    }
});
  • Iterator<E> iterator()
ArrayList<String> list = new ArrayList<String>();
list.add("C");
for(Iterator it2 = list.iterator();it2.hasNext();){
              System.out.println(it2.next());
}
  • List<E> subList(int fromIndex, int toIndex) :返回一个子List
    这个方法也用到了浅层copy,copy了子序列赋给一个新的序列。
ArrayList<Integer> a = new ArrayList<Integer>();
a.add(1);
a.add(2);
ArrayList<Integer> b =new ArrayList<Integer>(a.subList(0, 1));
a.set(0, 10000);
System.out.println(a.get(0));    //print 10000
System.out.println(b.get(0));    //print 1  没跟着改变
ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();
ArrayList tmp1 = new ArrayList();
tmp1.add(1);
tmp1.add(2);
a.add(tmp1);
    
ArrayList<ArrayList<Integer>> b =new ArrayList<ArrayList<Integer>>(a.subList(0, 1));
tmp1.set(0, 10000);
System.out.println(b);
System.out.println(a.get(0).get(0));       //print 10000
System.out.println(b.get(0).get(0));       //print 10000  跟着改变了

相关文章

    暂无相关文章

用户点评