Java ArrayList 动态数组


ArrayList

  • ArrayList 提供存储空间可变的模型,底层是数组实现的;
  • ArrayList 可以包含所有元素,包括null;
  • ArrayList 元素是按照 add() 方法顺序排列;
  • 每个 ArrayList 都有1个容量 capacity;

1. 构造方法

构造方法 说明
public ArrayList() 构造一个初始容量为10的空列表
public ArrayList(int initialCapacity) 构造一个指定初始容量的空列表
public ArrayList(Collection c) 构造一个包含指定集合元素的列表,按迭代器返回的顺序

2. 使用 Iterator() 遍历

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class test {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("apple");
        list.add("banana");
        System.out.println(list);//[apple,banana]
        Iterator it = list.iterator();
        while (it.hasNext()) {
            System.out.print(it.next() + " ");
        }
        System.out.println();
        System.out.println(list.set(1, "cat"));
        it = list.iterator();
        while (it.hasNext()) {
            System.out.print(it.next() + " ");
        }
        System.out.println();
        System.out.println(list.get(1));
        System.out.println(list.indexOf("apple"));
        List l = list.subList(0, 1);
        it = l.iterator();
        while (it.hasNext()) {
            System.out.print(it.next() + " ");
        }
    }
}

3. 打印

import java.util.ArrayList;

public class test {
    public static void main(String[] args) {
        ArrayList<String> a = new ArrayList();
        a.add("1");
        a.add("2");
        //ArrayList 遍历时用 ArrayList.size()
        for (int i = 0; i < a.size(); i++) {
            System.out.print(a.get(i) + " ");//1 2
        }
        System.out.println();
        //print(ArrayList arrayList)时会以数组形式打印出来
        System.out.println(a);//[1, 2]
        System.out.println(a.toString());//[1, 2]
        System.out.println(a.toArray());//[Ljava.lang.Object;@23fc625e
        Object[] o = a.toArray();
        for (int i = 0; i < o.length; i++) {
            System.out.print(o[i] + " ");//1 2
        }
        System.out.println();
        //ArrayList.remove(int index)删除某一元素并返回删除的值
        System.out.println(a.remove(1));//2
        System.out.println(a);//[1]
    }
}

4. contains()

array 不重复插入 ArrayList;

import java.util.ArrayList;

public class test {
    public static void main(String[] args) {
        String arr[] = {"abc", "bad", "abc", "aab"};
        ArrayList<String> list = new ArrayList<String>();
        for (String str : arr) {
            if (!list.contains(str)) {
                list.add(str);
            }
        }
        System.out.println(list);
    }
}

5. 加强 for 循环

统计 ArrayList 中子串的出现次数;

import java.util.ArrayList;
import java.util.List;

public class test {
    static int frequency(List<String> list, String str) {
        int count = 0;
        for (String string : list) {
            if (string.equals(str)) {
                count++;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        System.out.println(frequency(list, "a"));
    }
}
发布了59 篇原创文章 · 获赞 60 · 访问量 1594

猜你喜欢

转载自blog.csdn.net/Regino/article/details/104509122
今日推荐