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)); } } } }
输出: