集合

集合:集合是含有多个元素构成的一个整体。可以将集合看做事一个容器,能够存放元素,并且在需要时能够获取元素。

集合与数组:
1.数组的数据结构比集合简单,因此,数组的性能好于集合
2.数组是定长的,数组对象一经创建,其长度就不能进行修改。可以根据需要底层实现自动扩容
3.数组提供的功能相对单一,集合提供了很多有用的的方法,可以用来操作集合中的元素

Collection 接口是集合框架中两大根接口之一,提供(表示)的是一种通用的设计
Java没有为collection 接口提供有效的实现类。我们可以使用collection子接口的实现类

public class CollectionMethod{
    Public static void main(Sting[] args){
        Collection<Integer> c = new ArrayList<>();
            ArrayList<Integer>  c = new ArrayList<>();

//向集合中加入元素,如果元素加入成功,返回ture, 否则返回false
            c.add (5);
            c.add();

//返回集合中元素的个数
            System.out.println(c.size());

//判断集合是否为空(元素是否为0),空则返回true,否则返回false
            System.out.println(  c.isEmpty()  );

//判断集合中是否包含参数指定的元素(equals方法),包含返回true,否则返回false
            System.out.println(  c.contains(5)  );

//返回集合的迭代器,可以用来遍历集合中的每一个元素
            Iterator<Integer> i = c.iterator();

//将集合转换成数组,数组的长度就是集合中元素的个数
            Object[] o = new  c.toArray();
            System.out.println(o.length);

//将集合转换成数组,但是可以保留集合中元素的类型
            Integer[] array = new Integer[c.size];
            array = c.toArray(array);
            System.out.prinltn(Arrays.toString(array));

//删除集合中参数指定的元素,如果删除成功,返回true,否则返回false
            c.remove(3);

            Collection<Integer> c2 = new ArrayList<>();
            c2.add(4);
            c2.add(5);
//判断当前集合是否包含参数集合中的所有元素,全部包含返回true,否则返回false
            System.out.println( c.containAll(c2) );

//使用当前集合加入参数集合中所有的元素(在c集合中加入c2集合的所有元素),如果当前集合发生改变,返回true,否则返回false
            c.addAll(c2);

//从当前集合删除参数集合中的所有元素,如果当前集合发生改变,返回true,否则返回false
            c.removeAll( c2 );

//删除符合条件的所有元
            c.removeIf(t -> t>2);

//保留当前集合存在,并且参数集合存在的所有元素,删除掉当前集合存在,并且参数集合不存在的所有元素,(保留两个集合中的交集元素)如果当前集合发生改变,返回(true),否则返回false
            System.out.println(  c.retainAll(c2)  );

//删除当前集合中所有的元素
            c.clear();
    }
}

思考:为什么要通过接口来引用对象,而不是直接声明实现类的引用呢:
答:   如果通过实现类的方式去创建实现累的对象的话,在用中没有什么影响
但是这样做会在以后修改带来不方便,因为一个接口可能有很多实现类,而实现类都有各自的优缺点,如果以后想对实现改变的话,只需要该右边的实现类

集合的遍历:
public class Traverse {
    public static void main(String[] args){
        Collection<Integer> c = new ArrayList<>();
        for(int i = 0;i <5;i+=){
            c.add(i);
}
// 1使用Iterator的方法(原始方法)
        Interator<Integer> inter = c.iterator();

//判断是否含有下一个元素,存在返回true,否则返回false
        While(inter.hasNext()){

//返回下一个元素,同时向前移动指针
        Integer  in = inter.next();
        System.out.println(in);

//删除最后一次通过调用next返回的元素
        Inter . remove();

在使用迭代器访问集合元素时,不能通过集合对象本身来删除元素,否则就会在运行时产生ConcurrentModificationException异常。
如果需要在迭代器访问集合元素时删除元素,需要通过迭代器的remove方法进行安全的删除元素

}

“`

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值