文档章节

集合学习笔记(二)

Mr_菜
 Mr_菜
发布于 2016/04/20 21:00
字数 972
阅读 7
收藏 0

在正式学习集合之前,我们先对数组进行复习

     数组: 存储同一种数据类型的集合容器.

     数组的特点:
         1. 只能存储同一种数据类型的数据。
         2. 一旦初始化,长度固定。
         3. 数组中的元素与元素之间的内存地址是连续的。
    
     注意: Object类型的数组可以存储任意类型的数据。 (Object是超级父类)


集合:集合是存储对象数据的集合容器。
 
集合比数组的优势
    1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。
    2. 集合的长度是会发生变化的,数组的长度是固定的。
    
 
-------| Collection  单例集合的跟接口。
 ----------| List  如果是实现了List接口的集合类,具备的特点: 有序,可重复。
 ----------| Set   如果是实现了Set接口的集合类,具备特点: 无序,不可重复。

Collection接口中的方法:
    
    增加
        add(E e)  添加成功返回true,添加 失败返回false.
        addAll(Collection c)  把一个集合 的元素添加到另外一个集合中去。
    
    删除
        clear()
        remove(Object o)   remove 指定集合中的元素删除,删除成功返回true,删除失败返回false.
        
        removeAll(Collection  c) 


        retainAll(Collection  c)
    
    查看
        size()

    

public class Demo2 {
    
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("张三");
        c.add("李四");
        c.add("王五");
        System.out.println("添加成功吗?"+c.add("赵六"));
        
        
        //创建集合
        Collection c2 = new ArrayList();
        c2.add("张三三");
        c2.add("李四四");
        c2.add("王五五");
    
        /*
        c.addAll(c2); // 把c2的元素的添加到c集合 中去。
        */
        
        /*
         删除方法:
        c.clear(); //clear()清空集合中的元素
        System.out.println("删除成功吗?"+c.remove("美美"));  // remove 指定集合中的元素删除,删除成功返回true,删除失败返回false.
        
        c.removeAll(c2); //删除c集合中与c2的交集元素。
        
        c.retainAll(c2); //保留c集合与c2的交集元素,其他的元素一并删除。
        */
        System.out.println("查看元素个数:"+c.size());
        
        System.out.println("集合的元素:"+ c);
        
        
    }
    
}

    判断
        isEmpty()
        contains(Object o)
        containsAll(Collection<?> c)
    
    迭代
        toArray()
        iterator() 

下面我们对迭代器进行进一步的学习

迭代器的作用:就是用于抓取集合中的元素。


迭代器的方法:
    hasNext()   问是否有元素可遍历。如果有元素可以遍历,返回true,否则返回false 。
              
     next()    获取元素...
        
     remove()  移除迭代器最后一次返回 的元素。

ListIterator特有的方法:
    
    添加:
        hasPrevious()  判断是否存在上一个元素。
        previous()    当前指针先向上移动一个单位,然后再取出当前指针指向的元素。
        
        next();  先取出当前指针指向的元素,然后指针向下移动一个单位。
        
---------------------------    
    
        add(E e)   把当前有元素插入到当前指针指向的位置上。
        set(E e)   替换迭代器最后一次返回的元素。


迭代器在变量元素的时候要注意事项:

在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素 个数,如果需要添加或者删除只能使用迭代器的方法进行操作。
 
 如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常。   
 迭代元素 的过程中: 迭代器创建到使用结束的时间。

需求:使用三种方式遍历集合的元素.     
第一种: 使用get方法遍历。
第二种: 使用迭代器正序遍历。
第三种: 使用迭代器逆序遍历。

public class Test {
    
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        
        System.out.println("======get方法遍历=======");
        for(int i = 0 ; i<list.size() ; i++){
            System.out.print(list.get(i)+",");
        }       
        System.out.println("\r\n======使用迭代器正序遍历==========");
        ListIterator it = list.listIterator();    //获取到迭代器
        while(it.hasNext()){
            System.out.print(it.next()+",");
        }      
        System.out.println("\r\n======使用迭代器逆序遍历==========");
        while(it.hasPrevious()){
            System.out.print(it.previous()+",");
        }     
    }
}


© 著作权归作者所有

Mr_菜
粉丝 1
博文 13
码字总数 8804
作品 0
西安
程序员
私信 提问
数据结构学习笔记-----------------绪论

为了加深自己对数据结构的理解:所以这个专题下会记录我的学习的笔记。 程序设计的实质:对确定的问题选择一种好的结构,加上设计一个好的算法! 计算机解决一个具体的问题,需要经过下列几个...

付炜超
2017/09/03
0
0
Scala 学习笔记 模式匹配

1. 模式匹配简介 模式匹配是 Scala 的重要特性之一,前面两篇笔记Scala学习笔记(六) Scala的偏函数和偏应用函数、Scala学习笔记(七) Sealed Class 和 Enumeration都是为了这一篇而铺垫准备的...

Tony沈哲
2017/05/16
0
0
Swift 个人学习笔记 - 05: 集合类型(Array, Set, Dictionary)

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的...

amc
2017/02/22
0
0
go语言文件汇总

归并排序及go语言实现 堆排序算法及go语言实现 Go语言基础学习(一)变量 【Leetcode】:Counting Bits问题 in Go语言 基于go语言的心跳响应 【Leetcode】:Single Number III问题 in Go语言 ...

d_watson
2016/04/15
137
2
C#可扩展编程之MEF学习笔记(五):MEF高级进阶

好久没有写博客了,今天抽空继续写MEF系列的文章。有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后。 前面四篇讲了MEF的基础知识,学完了前四篇,...

雲霏霏
2014/09/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
875
11
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
15
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部