java-Collection(集合)

Collection(集合)

Collection接口

Collection接口是层次结构中的根接口,构成Collection的单位称为元素。通常不能直接使用,List与Set接口都继承了Collection接口,这些方法对他们都是通用的

add()   添加
remove()    删除
is.Empty()  判断当前集合是否为空,返回boolean
iterator()  返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象
size()      获取该集合中元素的个数

集合的体系:

———-| Collection 单列集合 的根接口
—————-| List 如果实现了List接口的集合类,具备的特点: 有序,可重复。
——————–| ArrayList 底层是维护了一个Object数组实现 的, 特点: 查询速度快,增删慢。
什么时候使用ArrayList: 如果目前的数据是查询比较多,增删比较少的时候,那么就使用ArrayList存储这批数据。 比如 :高校的 图书馆

——————–| LinkedList 底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。
——————–| Vector(了解即可)

————–| Set
如果是实现了Set接口的集合类,该集合类具备的特点: 无序,不可重复。

有序: 集合的有序不是指自然顺序,而是指添加进去的顺序与元素出来的顺序是一致的。

List的使用

List接口中特有方法:

    添加
        add(int index, E element) 
        addAll(int index, Collection<? extends E> c) 
    获取:
        get(int index) 
        indexOf(Object o) 
        lastIndexOf(Object o) 
        subList(int fromIndex, int toIndex) 
    修改:
        set(int index, E element) 

    迭代
        listIterator() 

List接口中特有的方法具备的特点: 操作的方法都存在索引值。 

只有List接口下面的集合类才具备索引值。其他接口下面的集合类都没有索引值。

实例1:

package list;

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

public class Demo1 {

    public static void main(String[] args) {

        List<String> list = new ArrayList<String>();
list.add(1, "赵本山"); // 把元素添加到集合中的指定索引值位置上。

        list.add("狗娃");
        list.add("狗剩");
        list.add("铁蛋");  //把元素添加到集合的末尾处。
        list.add("狗娃");

        list2.add("本山");
        list2.add("小沈阳");

        list.addAll(2,list2); //把list2的元素添加到list集合指定索引值的位置上。
//      获取的方法 
        System.out.println("get方法获取元素:"+list.get(1)); //根据索引值获取集合中的元素

        //使用get方法遍历集合的元素:
        for (int i = 0; i < list.size() ; i++) {
            System.out.print(list.get(i)+",");
        }

        System.out.println("找出指定元素第一次出现在集合中 的索引值:"+ list.indexOf("本山"));
        System.out.println("找指定的元素最后一次出现在集合中的索引值:"+list.lastIndexOf("狗娃"));
        List subList = list.subList(1, 3); //指定开始与结束的索引值截取集合中的元素。
        System.out.println("子集合的元素是:"+ subList);
        list.set(3, "赵本山"); //使用指定的元素替换指定索引值位置的元素。


        System.out.println("集合的元素:"+list);
    }

}
/*
get方法获取元素:赵本山
狗娃,赵本山,本山,小沈阳,狗剩,铁蛋,狗娃,找出指定元素第一次出现在集合中 的索引值:2
找指定的元素最后一次出现在集合中的索引值:6
子集合的元素是:[赵本山, 本山]
集合的元素:[狗娃, 赵本山, 本山, 赵本山, 狗剩, 铁蛋, 狗娃]
*/

Collection的迭代

package Demo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class demo8 {

    public static void main(String[] args) {

        Collection<String> c = new ArrayList<String>();

        String[] name = {
                "1","2","3","4","5","6"
        };

        for(int i=0;i<name.length;i++){
            c.add(name[i]);
        }

        Iterator<String> iterable = c.iterator();
        while(iterable.hasNext()){
            String str = (String)iterable.next();
            System.out.println(str);
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值