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. JavaScript 字符串实用常操纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  2. EntityFramework之DetectChanges's Secrets(三)(我为EF正名)

    前言 对于应用程序开发者来说,通常不需要考虑太多对于Entity Framework中的变更追踪(change tracking),但是变更追踪和DetectChanges方法是栈的一部分,在这其中, ...

  3. ES6的一些常用特性

    由于公司的前端业务全部基于ES6开发,于是给自己开个小灶补补ES6的一些常用特性.原来打算花两天学习ES6的,结果花了3天才勉强过了一遍阮老师的ES6标准入门(水好深,ES6没学好ES7又来了...) ...

  4. git克隆项目到本地&&全局安装依赖项目&&安装依赖包&&启动服务

     一.安装本地开发环境 1.安装本项目 在需要保存到本地的项目的文件夹,进入到文件夹里点击右键,bash here,出现下图: 2.安装依赖项目  3.安装依赖包(进入到命令行) # 安装依赖包 $ ...

  5. FILE文件流的中fopen、fread、fseek、fclose的使用

    FILE文件流用于对文件的快速操作,主要的操作函数有fopen.fseek.fread.fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满 ...

  6. Nginx学习笔记--001-Nginx快速搭建

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...

  7. Oracle第一步

    Oracle 启动数据库 Startup [NOMOUNT|MOUNT|OPEN|FORCE] [restrict] [pfile=filename] 启动实例,加载数据库,启动数据库 oRACLE关 ...

  8. 【转】Android开发中让你省时省力的方法、类、接口

    转载 http://www.toutiao.com/i6362292864885457410/?tt_from=mobile_qq&utm_campaign=client_share& ...

  9. jexus5.8.2 linux x64专业版 配置https

    一.环境 1.jexus版本:Jexus/5.8.2.8 Linux专业版 内置mono版本:Mono/4.6.2.7 2.操作系统:centOs7 jexus独立版由于是免安装版并且内置mono,所 ...

  10. 对CSS中的Position、Float属性的一些深入探讨

    对CSS中的Position.Float属性的一些深入探讨 对于Position.Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不 ...