[29]集合的基本知识

版权声明:嘤嘤嘤,小白的东西,大牛们应该看不上吧。 https://blog.csdn.net/qq_37384180/article/details/84797184

主要为笔记。

集合Collection接口:用于存储数据的容器。

这里没有用对象代替数据,因为数据也能够添入进集合之中。

在jdk1.5版本之后,有了自动拆箱和自动装箱后。就可以这么写。

Collection con=new ArrayList();
con.add(3);

在jdk1.5版本之前

Collection con=new ArrayList();
con.add(Integer.ValueOf(3));

集合的作用和学过的数组很类似。因为都是用于存储数据的容器。

区别

数组的特点:长度定义后固定,类型统一

注:听大佬说,Object的数组可以存储所有类型,试验之后如实!

集合的特点:长度可变,类型随意

集合的特点也是集合的比数组优秀的一点。

Collection常用方法:取自Java API

 boolean add(E e) 
          确保此 collection 包含指定的元素(可选操作)。
 void clear() 
          移除此 collection 中的所有元素(可选操作)。
 boolean contains(Object o) 
          如果此 collection 包含指定的元素,则返回 true。
boolean isEmpty() 
          如果此 collection 不包含元素,则返回 true。
 boolean remove(Object o) 
          从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
int size() 
          返回此 collection 中的元素数。

代码体现

package cn.collection;

class Demo{
    public static void main(String[] args){
        Collection con=new ArrayList();
        con.add("binnid"); //添加元素
        con.add("lgb"); //添加元素
        con.clear() //清除所有元素
        boolean isEmpty=con.isEmpty(); //判断集合是否为空,是的话返回true
        con.add("lgb"); //添加元素
        boolean isContains=con.contains("lgb"); //判断集合是否包含此元素,是的话返回true
        con.remove("lgb"); //移除指定元素
        int size=con.size(); //获取集合的长度
    }
}

迭代器

Collection接口继承了Iterable

实现了Iterable接口允许对象成为foreach语句的目标。

像List,Set接口(还未学到),ArrayList就实现了Iterable。

代码体现

for(Iterator it=con.iterator();it.hasNext();){
    Obejct obj=(Object)it.next();
}

boolean hasNext()   有元素可遍历。如果有元素可以遍历,返回true          
Object next()    获取元素     

或用foreach

for(Object obj : con){

}

注:如果要有顺序的迭代要看清楚当前对象的itrator()是否是有序的,部分Collection子类是无序的。

若要百分百实现有序,建议使用toArray()。

若没有元素能迭代,却还使用迭代器,则会报错

猜你喜欢

转载自blog.csdn.net/qq_37384180/article/details/84797184