集合框架

集合框架

定义: 集合和数组类似,只不过集合的数据可以动态变化

List

ArrayList集合
ArrayList集合存储的数据,有序,可以重复
初始容量为10的口列表
底层是Object数组
因为有下表,增删很慢,查询很快
案例:

		ArrayList<String> list=new ArrayList();
        list.add("谢老板");
        list.add("派大星");
        list.add("画面宝宝");
        list.add("倒霉熊");

        //根据类容清除
        //集合对象名.remove("内容");
        list.remove("画面宝宝");

        //根据下标清楚
        //集合对象名.remove(下标);
        //如果集合类型为Integer使用下表进行删除可能会出现报错情况
        list.remove(0);

        //通过下表修改集合内容
        //集合对象名.set(集合下表,"集合内容");  
        list.set(0,"谢保王");

        //清空列表所有数据
        list.clear();
		
		//单个查询
		//返回值类型 对象名=集合对象名.get(下标)
		String getList=list.get(0);
		System.out.println(getList);
		
        //lambda表达式遍历数据(jdk1.8以上才有)
        //集合对象名.forEach(自定义名->{代码块})
        list.forEach(temp->{
            System.out.println(temp);
        });

LinkedList集合

LinkedList和ArrayList集合语法一样
LinkedList增删特别快,查询慢
案例

		LinkedList<String> bookList1=new LinkedList();
        bookList1.add("java从门到放弃");
        bookList1.add("HTML+SSM从入门到精通");
        bookList1.add("Mysql从入门到秃头");
        bookList1.add("oop从入门到放弃");
        bookList1.add("三分钟带你精通高并发带你拿高薪");

        //集合转数组,返回值为Object类型
        //数组接收类型[] 对象名 = 集合对象名.toArray();
        Object[] object = bookList1.toArray();
        for (Object obj: object) {
            System.out.println(obj);
        }

        //吧一个集合里面的数据放到另一个集合中
        // 对象名2.addAll(对象名1);对象名1的集合数据放到对象名2的集合中
        LinkedList<String> bookList2=new LinkedList();
        bookList2.addAll(bookList1);

set

set集合:存储数据无序,不可重复
HashSet
HashSet extends(继承) Abstractset
Hashset初始容量为16,加载因子是0.75
底层是哈希表
案例:

 Set<String> hashSet=new HashSet<String>();
        hashSet.add("喜羊羊");
        hashSet.add("村长");
        hashSet.add("懒羊羊");
        hashSet.add("沸羊羊");
        hashSet.add("美羊羊");

        //由于底层是哈希表,没有下标,只能提供内容删除
        hashSet.remove("喜羊羊");

        //在HashSet中没有修改,修改要先删除在添加
        //吧懒洋洋修改成灰太狼
        hashSet.remove("懒洋洋");
        hashSet.add("灰太狼");
		
		 //判断元素是否存在
        boolean folg = hashSet.contains("喜羊羊");
        System.out.println(folg);
		
        //遍历
        hashSet.forEach(temp->{
            System.out.println(temp);
        });

TreeSet
TreeSet:底层是二叉树,不可以重复,(实现了Comparable,Comparator接口类型)可以进行排序(8大数据类型可以进行排序,中文是通过首拼排序)

   Set<Integer> treeSet=new TreeSet<>();
        treeSet.add(12);
        treeSet.add(32);
        treeSet.add(30);
        treeSet.add(88);
        treeSet.add(-1);
        treeSet.add(24);
        treeSet.forEach(tmep-> System.out.print(tmep+"\t"));
        System.out.println("\n\n"+"------------国际专业分割线-------------"+"\n");
        Set<String> treeSet2=new TreeSet<>();
        treeSet2.add("海绵宝宝");//h
        treeSet2.add("派大星");//p
        treeSet2.add("光头强");//g
        treeSet2.add("谢老板");//x
        treeSet2.add("章鱼哥");//z
        treeSet2.add("熊大");//x  
        treeSet2.forEach(tmep-> System.out.print(tmep+"\t"));

Map

Map:双列集合,存放数据无序,key值不可以重复,value可以

Map<Integer,String> map1=new HashMap<>();
        map1.put(1,"海绵宝宝");
        map1.put(2,"小美");
        map1.put(3,"谢老板");
        map1.put(4, "翠花");
        //v1对应的是上一个将值
        String v1 = map1.put(4, "派大星");

        System.out.println(v1);

        //通过key来查询value
        String s = map1.get(1);
        System.out.println(s);

        //遍历Map集合
        map1.forEach((k,v)-> System.out.println(k+"="+v));

        //直接打印HashMap集合(可以直接打印是因为我HashMap中源码覆盖率toString)
        System.out.println(map1);

        //修改:通过添加方法实现(因为如果你输入重复的k值,会将其覆盖)
        map1.put(1,"海绵弟弟");
        map1.forEach((k,v)-> System.out.println(k+"="+v));;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值