Collection接口andList接口

Collection 表示一组对象,它是集中、收集的意思。Collection接口的两个子接口是List、Set接口。
在这里插入图片描述
Collection中add方法只能填入对象,不能填入基本数据类型

Collection c = new ArrayList();
c.add(123);//此时123是包装类的123
c.add(new String(tom));
c.add(false);
//还可以填入自定义的类的对象
//cotains方法
System.out.println(c.cotains(new String(tom)));
//true相当于equals因为String类重写了equals方法所以是判断内容
//如果其他的类没有重写equals方法我们就不能比较内容了
public static void test1() {
        Collection<String> c = new ArrayList<>();//增加一个泛型
        System.out.println(c.size());//0
        System.out.println(c.isEmpty());//true
        c.add("小吴");
        c.add("小佳");
        Object[] obj = c.toArray();//非常常用的方法,转换成object数组
        System.out.println(c.contains("小吴"));//true
        System.out.println(obj);//[Ljava.lang.Object;@4554617c
        System.out.println(c);//调用toString方法[小吴,小佳]
        System.out.println(c.size());//2
        System.out.println(c.isEmpty());//false
        c.remove("小佳");//是移除而不是删除,是把这个对象的地址从容器中移出来而不是删除对象
        System.out.println(c);//小吴
        c.clear();//移除所有内容
        System.out.println(c.size());//0
    }
    /*将数组转化成集合
    List<String>list=Arrys.asList(new String[]{"aa","bb","cc"})

List中常用方法

List是有序、可重复的容器。
有序:List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素。类似数组的索引下标
可重复:List允许加入重复的元素。更确切地讲,List通常允许满足 e1.equals(e2) 的元素重复加入容器。
除了Collection接口中的方法,List多了一些跟顺序(索引)有关的方法,参见下表:在这里插入图片描述

 public static void test2() {
        List<String> l1 = new ArrayList<>();
        l1.add("aa");
        l1.add("bb");
        l1.add("cc");
        List<String> l2 = new ArrayList<>();
        l2.add("aa");
        l2.add("dd");
        l2.add("ee");
        list.addAll(list2); //将list2中所有元素都添加到list中
        //l1.removeAll(l2);把相同的aa移出去,输出[bb.cc]
        //l1.retainAll(l2);取相同的部分,输出[aa]
        System.out.println(l1);
    }
    public static void test3(){
        List<String>l1=new ArrayList<>();
        l1.add("a");
        l1.add("b");
        l1.add("c");
        l1.add("d");
        System.out.println(l1);
        l1.add(2,"wu");
        System.out.println(l1);//运行结果[a,b,wu,c,d]不是替代而是插入占位
        l1.remove(2);
        System.out.println(l1);//运行结果[a, b, c, d]
        l1.set(2,"wu");
        System.out.println(l1);//运行结果[a, b, wu, d]修改2位置的字符串
        l1.add("b");
        System.out.println(l1);
        System.out.println(l1.indexOf("b"));//运行结果是1 从索引位置的第一位开始  如果不存在就返回-1.
        System.out.println(l1.lastIndexOf("b"));//运行结果是4,从索引最后一位开始向前找
    }

遍历list

public class TestFor {
    public static void main(String[] args){
        ArrayList c = new ArrayList();
        c.add(123);//此时123是包装类的123
        c.add(456);
        c.add(new String("tom"));
        c.add(false);
        //内部依然是迭代器
        for(Object obj:c){
            System.out.println(obj);
        }
        //法2
        Iterator iterator = c.iterator();
        while(iterator.hasNext()){//相当于判断iterator中还有没有元素
            System.out.println(iterator.next());
        }
        //法3
        for(int i=0;i<c.size();i++){
            System.out.println(c.get(i));
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值