ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Collection集合详解

2021-11-28 21:58:52  阅读:181  来源: 互联网

标签:System lists println add 详解 Collection sets 集合 out


什么是集合?

  • 集合是一个大小可变的容器。

  • 容器中的每个数据称为一个元素,数据==元素。

  • 集合的特点是:类型不确定,大小不固定。

一  Collection集合体系:

 上述实现类的特点

HashSet
添加的元素是无序,不重复,无索引
TreeSet
不重复,无索引,按照大小默认升序排序
LinkedHashSet
添加的元素是有序,不重复,无索引
ArrayList
添加的元素是有序,可重复,有索引
LinekdList
添加的元素是有序,可重复,有索引

二  Collection集合的常用API:

boolean add(E e)
把给定的对象添加到当前集合中
void clear()
清空集合中所有的元素
boolean remove(E e)
把给定的对象在当前集合中删除
boolean contains(Object obj)
判断当前集合中是否包含给定的对象
boolean isEmpty()
判断当前集合是否为空
int size()
返回集合中元素的个数
Object[] toArray()
把集合中的元素,存储到数组中

        实际使用API

public class CollectionDemo {
    public static void main(String[] args) {
        
        // 此处是多态的形式
        Collection<String> sets = new HashSet<>();
        // 1.添加元素,添加成功返回true.
        System.out.println(sets.add("贾乃亮")); // true
        // HashSet:添加的元素是无序,不重复,无索引。
        System.out.println(sets.add("贾乃亮")); // false
        System.out.println(sets.add("王宝强")); // true
        sets.add("陈羽凡");
        System.out.println(sets); // 集合重写了toString()方法,默认打印出内容信息
        // 2.清空集合的元素。
        sets.clear();
        //System.out.println(sets);

        // 3.判断集合是否为空 是空返回true 反之
        System.out.println(sets.isEmpty()); // false

        // 4.获取集合的大小
        System.out.println(sets.size()); // 3

        // 5.判断集合中是否包含某个元素 。
        System.out.println(sets.contains("贾乃亮"));

        // 6.删除某个元素:如果有多个重复元素默认删除前面的第一个!
        sets.remove("陈羽凡");
        System.out.println(sets);

        // 7.把集合转换成数组
        Object[] arrs = sets.toArray();
        System.out.println("数组:"+ Arrays.toString(arrs));

        String[] arrs1 = sets.toArray(String[]::new); // 以后再了解,指定转换的数组类型!
        System.out.println("数组:"+ Arrays.toString(arrs1));

        System.out.println("---------------------拓展---------------------------");
        Collection<String> c1 = new ArrayList<>();
        c1.add("李小璐");
        c1.add("马蓉");

        Collection<String> c2 = new ArrayList<>();
        c2.add("白百合");

        c1.addAll(c2); // 把c2集合的元素全部倒入到c1
        System.out.println(c1);
    }
}

三 Collection集合的遍历方式

首先解释一下 该处为什么没有最喜欢的for循环,因为Collection是没有索引的,所以不能使用for循环!!!

1  迭代器

public class CollectionDemo01 {
    public static void main(String[] args) {
        Collection<String> lists = new ArrayList<>();
        lists.add("赵敏");
        lists.add("小昭");
        lists.add("殷素素");
        lists.add("周芷若");
        System.out.println(lists);
        
        // 1.得到集合的迭代器对象。
        Iterator<String> it = lists.iterator();


        // 2.使用while循环遍历。
        while(it.hasNext()){
            String ele = it.next();
            System.out.println(ele);
        }

    }
}

2 foreach

foreach遍历的关键是记住格式:
   for(被遍历集合或者数组中元素的类型 变量名称 : 被遍历集合或者数组){

   }
public class CollectionDemo02 {
    public static void main(String[] args) {
        Collection<String> lists = new ArrayList<>();
        lists.add("赵敏");
        lists.add("小昭");
        lists.add("殷素素");
        lists.add("周芷若");
        System.out.println(lists);
        // lists = [赵敏, 小昭, 殷素素, 周芷若]
    
        for (String ele : lists) {
            System.out.println(ele);
        }

    }
}

3 Lambda表达式

public class CollectionDemo03 {
    public static void main(String[] args) {
        Collection<String> lists = new ArrayList<>();
        lists.add("赵敏");
        lists.add("小昭");
        lists.add("殷素素");
        lists.add("周芷若");
        System.out.println(lists);
        //   [赵敏, 小昭, 殷素素, 周芷若]
       
        lists.forEach(s -> {
            System.out.println(s);
        });
//      lists.forEach(s ->  System.out.println(s));
//      lists.forEach(System.out::println);


    }
}

 

标签:System,lists,println,add,详解,Collection,sets,集合,out
来源: https://blog.csdn.net/weixin_46527470/article/details/121598054

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有