9.1 ArrayList(集合)的使用,与array(数组)的对比

1.array 和ArrayList的区别?

  array 数组的长度是固定的,适应不了变化的需求。

  ArrayList集合的长度可变、大小可变。

 

2.为什么要用集合,它优点是什么?

  java是面向对象编程语言,面向对象对事物的描述都是通过对象来体现的。

  为了方便对对象操作,必须对这多个对象进行存储。这是就不能是一个基本的变量,应该是一个容器类型的变量。

  1)目前学到容器类型变量:StringBuilder、数组

  StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求。

  2) 所以,我们目前只能选择数组了,也就是我们前面学习过的对象数组。但是,数组的长度是固定的,适应不了变化的需求,那么,我们该如何选择呢?

  这个时候,java就提供了集合类供我们使用。

 

3.集合的使用

* 集合类的特点:
* 长度可变。
*
* ArrayList<E>:
* 大小可变数组的实现
*
* <E>:是一种特殊的数据类型,泛型。
* 怎么用呢?
* 在出现E的地方我们使用引用数据类型替换即可
* 举例:ArrayList<String>,ArrayList<Student>
*
* 构造方法:
* ArrayList()


 /* 添加元素:
 *         public boolean add(E e):添加元素
 */         public void add(int index,E element):在指定的索引处添加一个元素

public class ArrayListDemo {
    public static void main(String[] args) {
        //创建对象
        ArrayList<String> array = new ArrayList<String>();

        //添加元素
        array.add("hello");
        array.add("java");
        array.add("worll");

        //在指定的索引处添加元素
        array.add(1,"world");

        System.out.println(array);
    }
}

输出如下

 

 

/*
 * 获取元素
 *         public E get(int index):返回指定索引处的元素
 * 集合长度
 *         public int size():返回集合中的元素的个数
 * 删除元素
 *         public boolean remove(Object o):删除指定的元素,返回删除是否成功
 *         public E remove(int index):删除指定索引处的元素,返回被删除的元素
 * 修改元素
 *         public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
 */
public class ArrayListDemo2 {
    public static void main(String[] args) {
        //创建对象
        ArrayList<String> array = new ArrayList<String>();

        array.add("hello");
        array.add("world");
        array.add("000");

        System.out.println("array.get(1) = " + array.get(1));
        System.out.println("array.size() = " + array.size());
        System.out.println("array.remove(0) = " + array.remove(0));
        System.out.println("array.set(0,\"hai\") = " + array.set(0,"hai"));
        System.out.println("array = " + array);

    }
}

输出如下

 

 

案例:

/*
 * 给定一个字符串数组:{“张三丰”,“宋远桥”,“张无忌”,“殷梨亭”,“张翠山”,“莫声谷”},将数组中的元素添加到集合中,并把所有姓张的人员打印到控制台上。
 *
 * 分析:
 *         A:定义字符串数组
 *         B:创建集合对象
 *         C:遍历字符串数组,获取到每一个字符串元素
 *         D:把获取到的字符串元素添加到集合
 *         E:遍历集合
 *             要判断每一个字符串元素是否以"张"开头,如果是,就输出在控制台
 */
public class ArrayListTest1 {
    public static void main(String[] args) {
        String[] array = {"张三丰","宋远桥","张无忌","魔声谷"};

        ArrayList<String> arraylist = new ArrayList<String>();
        for(int i=0;i<array.length;i++) {
            arraylist.add(array[i]);
        }

        System.out.println(arraylist);
        for(int i=0;i<arraylist.size();i++) {
            if(arraylist.get(i).startsWith("")) {
                System.out.println("arraylist zhang = " + arraylist.get(i));
            }
        }
    }
}

输出:

 



posted @ 2019-06-14 09:39  龙桑  阅读(661)  评论(0编辑  收藏  举报