集合是Java提供的一种容器,可以用来存储多个数据
集合与数组的区别:数组长度固定不可变,集合长度可变,集合里面存的元素必须是引用数据类型
ArrayList集合例子
ArrayList<Person> list=new ArrayList<Person>(); list.add(new Person("熊大",20)); list.add(new Person("熊二",19)); list.add(new Person("琪琪国王",30)); //遍历 for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); }
这个地方添加的20是int类型,为什么还能加进去呢
原因是jdk1.5之后有了自动装箱的机制,会自动把int类型的元素转化为Integer类型
集合的继承实现关系
查询源代码,ArrayList继承了AbstractList类同时实现了List接口,List接口又继承了Collection
Collection是接口类的最顶层
public class ArrayList<E> extends AbstractList<E> public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> public interface List<E> extends Collection<E>
Collection接口的常用方法
add()返回boolean值,确保此Collection包含指定的元素(可以选择某个元素)
clear()移除Collection中搜友的元素(可以选择某个元素)
contains()如果Collection中包含用户指定的元素,就返回true
size()返回Collection中的元素数量
toArray()返回包含ciCollection中所有元素的数组(把Collection集合转变为数组)
package com.oracle.demo01; import java.util.ArrayList; import java.util.Collection; public class aaa { public static void main(String[] args) { //建立一个Collection集合 Collection< String> aa=new ArrayList<String>(); aa.add("aa"); aa.add("bb"); aa.add("cc"); //remove移除cc System.out.println(aa.remove("cc")); //看看里面有没有bb System.out.println(aa.contains("bb")); //aa是Collection类的对象,没有get()方法,所以便利的时候 //需要向下转型成ArrayList类对象 ArrayList<String> arr=(ArrayList<String>)aa; for(int i=0;i<arr.size();i++){ System.out.print(arr.get(i)+".."); } //clear方法 aa.clear(); for(int i=0;i<arr.size();i++){ System.out.print(arr.get(i)+".."); } } }
//转数组 Object[] obj=aa.toArray(); for(int i=0;i<obj.length;i++){ System.out.print(obj[i]+" "); }