集合

集合介绍:

  由于数组中存放对象,对对象操作起来不方便。java中有一类容器,专门用来存储对象。

  集合与数组的区别:

    1.数组的长度固定的,而集合长度时可变的

    2.数组只能储存同一类型的元素,而且能存基本数据类型和引用数据类型。集合可以存储不同类型的元素,只能存储引用数据类型

Collection接口描述:

  java.util.Collection 接口是集合中的顶层接口

  Collection接口常用的子接口有List 接口和Set接口

  List接口中常用的子类有:ArrayList类(数组列表)和LinkedList(链表)

  Set接口中常用的子类有:HashSet (哈希表)和LinkedHashSet(基于链表的哈希表)

Collection接口中的基本方法:

  1.添加元素

boolean add(E e)

  2.删除集合中指定元素

boolean  remove(Object  o);

  3.判断集合中是否包含指定元素

boolean contains(Object  o);

  4.获取集合中元素的个数

int  size();

  5.清空集合中的元素,集合还是存在的

void clear();

  6.将集合转换成数组,数组储存的数据类型是Object

Object[] toArray();

Iterator迭代器

  迭代器的好处:屏蔽了集合之间的不同,可以使用相同的方式取出

  Collection集合元素的通用获取方式:在取出元素之前先判断集合中有没有元素。如果有,就把这个元素取出来,继续再判断,如果还有就再取出来,一直把集合中的所有元素全部取出来,这种取出元素的方式专业术语称为迭代。

   Collection中有一个抽象方法iterator方法,所有的Collection子类都实现了这个方法;返回一个Iterator对象

Iterator<E>     iterator();

迭代器的两个方法:

  1.判断还有没有下个元素可以迭代,如果有就返回true

boolean  hasNext();

  2.返回迭代下一个元素值,并将指针向后移动一位

E  next();

  注意:在进行集合元素取出的时候,如果集合中没有元素了,还继续使用next()方法的话,将发生NoSuchElementException没有集合元素的错误

修改并发异常:

  产生原因:在迭代集合中元素的过程中,集合的长度发生改变(进行了元素增加或者元素删除的操作);

  增强for的底层原理也是迭代器,所以也需要避免这种操作;

  有些迭代器就避免了这样的问题,如listiterator

增强for:

  jdk1.5之后出现的一个高级for循环,专门用来遍历集合和数组,他的内部原理其实是个迭代器,所以在遍历的时候,不能对集合中的元素进行操作;

  格式:

for(元素的数据类型  变量:集合或者是数组){

}

  好处:代码减少,方便遍历

  弊端:没有索引,不能操作容器里的元素

java学习笔记之集合家族1的更多相关文章

  1. java学习笔记之集合家族2

    集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...

  2. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

  3. Java学习笔记之集合

    集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...

  4. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  5. 【Java学习笔记】集合转数组---toArray()

    package p2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ...

  6. 【Java学习笔记】<集合框架>定义功能去除ArrayList中的重复元素

    import java.util.ArrayList; import java.util.Iterator; import cn.itcast.p1.bean.Person; public class ...

  7. 【原】Java学习笔记028 - 集合

    package cn.temptation; import java.util.HashSet; import java.util.Set; public class Sample01 { publi ...

  8. 5.3类集(java学习笔记)集合的输出

    一.集合的输出 迭代输出:Iteratror接口 在输出集合时,最标准的方法是使用迭代器迭代输出. 1,List中的迭代器. Iterator中包含三个方法: hasNex()t判断集合内是否有元素存 ...

  9. java学习笔记——Collection集合接口

    NO 方法名称 描述 1 public boolean add(E e) 向集合中保存数据 2 public void clear() 清空集合 3 public boolean contains(O ...

随机推荐

  1. Problem K

    Problem Description The local toy store sells small fingerpainting kits with between three and twelv ...

  2. Handshakes

    Description Last week, n students participated in the annual programming contest of Marjar Universit ...

  3. ajax请求发送和页面跳转的冲突

    http://blog.csdn.net/allenliu6/article/details/77341538?locationNum=7&fps=1 在A页面中,有一个click事件,点击时 ...

  4. 针对数据量较大的表,需要进行跨库复制,采用navcat 实现sqlite数据库跨数据库的数据表迁移 [转载]

    2014年12月13日 14:36 新浪博客 (转自http://www.cnblogs.com/nmj1986/archive/2012/09/17/2688827.html) 需求: 有两个不同的 ...

  5. CentOS、Ubuntu配置网卡子接口

    CentOS # ip addr add dev eth0 lable eth0: 以上为临时配置,重启失效.若需永久保存,增加网络配置文件 # vim /etc/sysconfig/network- ...

  6. G彩娱乐网一个程序员到一个销售高手的心路历程

    0.引言 我大学本科读的是理工科,后来毕业以后,我逐渐走上了程 序员的道路.每天面对电脑一行一行的敲代码,这被我们程序员们戏称为"搬砖头",因为我们所做的事跟民工搬砖头砌墙本质上是 ...

  7. 一起写框架-Ioc内核容器的实现-基础功能-getBean(五)

    实现的功能 1. 启动程序时,将@ComponentScan加载的类,创建对象并放在容器里面.(查看上一篇文) 2. 通过ApplicatoinContext的getBean()方法获得容器里面的对象 ...

  8. 通讯框架 t-io 学习——websocket 部分源码解析

    前言 前端时间看了看t-io的websocket部分源码,于是抽时间看了看websocket的握手和他的通讯机制.本篇只是简单记录一下websocket握手部分. WebSocket握手 好多人都用过 ...

  9. 学习RocketMQ (一) 安装并且启动MQ

    1.使用RocketMQ 的 软件要求 64bit OS, Linux/Unix/Mac is recommended;64bit JDK 1.8+;Maven 3.2.xGit 1)安装Linux ...

  10. C#利用UdpClient发送广播消息

    首先写个接受消息的客户端.这里偷了点懒,new UdpClient(11000)就是用Udp方式侦听11000端口,侦听任何发送到11000端口的消息都会接收到. 代码 : ); Byte[] sen ...