1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解)

2.学习集合从Collection开始,所有集合都继承了他的方法

集合结构如图:

主要学习Collection中的

add()方法

向集合中添加元素

Collection<String> list = new ArrayList<>(); //父类引用指向子类对象
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("a");

-----------------------------------------------------------------------------------------------------------

remove()方法

移除集合中的元素

list.remove("a");

注意:Collection接口中remove()方法只可以传递固定的元素,不可以传索进去,只是子类重写remove()方法的功能

-----------------------------------------------------------------------------------------------------------

clear()方法

清空集合

list.clear();

-----------------------------------------------------------------------------------------------------------

size()方法

获取集合的长度

list.size();

字符串的长度是length()  数组长度是length属性 不要混淆

-----------------------------------------------------------------------------------------------------------

contains()方法

包含   传入一个值检测集合中是否包含这个元素  返回值Boolean类型

通常用来ArrayList集合中去重复元素

-----------------------------------------------------------------------------------------------------------

toArray()方法

将集合转为数组

Interger[] arr = list.toArray(new Integer[0]);

将数组转为集合

List<Integer> list = Arrays.aslist(arr);

-----------------------------------------------------------------------------------------------------------

Collection<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("a");
        System.out.println(list);
        System.out.println(list.toString());
        
        list.remove("a");
        System.out.println(list);
        
        boolean b = list.contains("a");
        System.out.println(b);
        
        String[] str = list.toArray(new String[0]);
        System.out.println(Arrays.toString(str));
        
        List<String> list1 =  Arrays.asList(str);
        
        list.clear();
        System.out.println(list);

-----------------------------------------------------------------------------------------------------------

遍历集合(删除元素)

public static void main(String[] args) {
        fun2();

    }
    /**
     * 普通for删除
     */
    public static void fun(){
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("a");
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).equals("a")){
            //这里的i--   是因为如果找到相连的元素  要把元素向前推一个索引  因为集合删除一个元素,这个元素的索引会被下一个元素覆盖,

//导致下一个元素没有被判读

list.remove(i--);
            }
        }
        System.out.println(list);
    }
    
    /**
     * 增强for删除   
     * 不可以删除元素   增强for没有记录list的索引不可以用来删除
     */
    public static void fun1(){
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("a");
        for (String string : list) {
            if(string.equals("b")){
                list.remove("b");
            }
        }
        System.out.println(list);
    }
    /**
     * 迭代器删除  这里要注意  要用一个值记录iterator.next的值  如果没有记录就不可删除相连的元素

*因为集合你在删除元素的时候索引会向前一个,在执行的时候就会跳到下一个索引了.这里需要理解
     */
    public static void fun2(){
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("a");
        Iterator<String> iterator = list.iterator();
        while(iterator.hasNext()){
            String string = iterator.next();
            if(string.equals("a")){
                iterator.remove();
            }
        }
        System.out.println(list);
    }
}

这是我第一写博客  希望大家互相交流  有什么问题大家给我提出来 谢谢

Java基础Collection集合的更多相关文章

  1. Java 基础 - Collection集合通用方法及操作/ArrayList和LinkedList的差别优势 /弃用的Vector

    Collection的笔记: /**存储对象考虑使用: * 1.数组, ①一旦创建,其长度不可变!② 长度难于应对实际情况 * 2.Java集合, ①Collection集合: 1.set: 元素无序 ...

  2. Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)

    Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...

  3. java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  4. Java基础-Collection子接口之Set接口

    Java基础-Collection子接口之Set接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学习Collection接口时,记得Collection中可以存放重复元素,也可 ...

  5. Java基础-Collection子接口之List接口

    Java基础-Collection子接口之List接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们掌握了Collection接口的使用后,再来看看Collection接口中 ...

  6. 第6节:Java基础 - 三大集合(上)

    第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...

  7. java基础技术集合面试【笔记】

    java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...

  8. 备战金三银四!一线互联网公司java岗面试题整理:Java基础+多线程+集合+JVM合集!

    前言 回首来看2020年,真的是印象中过的最快的一年了,真的是时间过的飞快,还没反应过来年就夸完了,相信大家也已经开始上班了!俗话说新年新气象,马上就要到了一年之中最重要的金三银四,之前一直有粉丝要求 ...

  9. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

随机推荐

  1. 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文

    阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...

  2. ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...

  3. mysql 学习总结

    MYSQL的增.删.查.改   注册.授权 #创建一个对数据库中的表有一些操作权限的用户,其中OPERATION可以用all privileges替换,DBNAME.TABLENAME可以用*替换,表 ...

  4. 玩转spring boot——MVC应用

    如何快速搭建一个MCV程序? 参照spring官方例子:https://spring.io/guides/gs/serving-web-content/ 一.spring mvc结合thymeleaf ...

  5. UVA, 10336 Rank the Languages

    难点在于:递归函数和输出: #include <iostream> #include <vector> #include <algorithm> #include ...

  6. Node.js使用PM2的集群将变得更加容易

    介绍 众所周知,Node.js运行在Chrome的JavaScript运行时平台上,我们把该平台优雅地称之为V8引擎.不论是V8引擎,还是之后的Node.js,都是以单线程的方式运行的,因此,在多核心 ...

  7. Android Butterknife 8.4.0 使用方法总结

    转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6016341.html 本文出自[赵彦军的博客] 前言 ButterKnife 简介 ButterKnife是 ...

  8. Windows cmd 长时间不输出新内容 直到按下ctrl + c 取消或者回车的解决办法

    换了一台新电脑, 在使用 ant 拷贝大量文件的时候 cmd 窗口过了很久没有继续输出新的内容,远远超过平时的耗时, 以为已经卡死 按下 ctrl + c 取消, 这时并没有取消, 而是输出了新内容, ...

  9. 机器学习之sklearn——EM

    GMM计算更新∑k时,转置符号T应该放在倒数第二项(这样计算出来结果才是一个协方差矩阵) from sklearn.mixture import GMM    GMM中score_samples函数第 ...

  10. .NET全栈开发工程师学习路径

    PS:最近一直反复地看博客园以前发布的一条.NET全栈开发工程师的招聘启事,觉得这是我看过最有创意也最朴实的一个招聘启事,更为重要的是它更像是一个技术提纲,能够指引我们的学习和提升,现在转载过来与各位 ...