Java 集合概述

Java 集合就像一种容器,可以把多个对象的引用放入容器中。

Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组

Java 集合可分为 Set、List 和 Map 三种体系
  Set:无序、不可重复的集合
  List:有序,可重复的集合
  Map:具有映射关系的集合

在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成 Object 类型处理;从 Java5 增加了泛型以后,Java 集合可以记住容器中对象的数据类型。

Collection 接口

Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合:

 public class TestCollections {
public static void main(String[] args) { //1. 创建一个 Collection 接口的对象.
Collection collection = new ArrayList(); //2. Collection 重要方法说明: /**
* 2.1 用于添加元素的:
* add()
* addAll()
*/
Person p1 = new Person();
collection.add(p1);
collection.add(new Person()); Collection collection2 = new ArrayList();
collection2.add(new Person());
collection2.add(new Person()); collection.addAll(collection2); System.out.println(collection.size()); /**
* 2.2 用于访问集合的方法:
* 获取集合的长度: size()
* 对集合进行遍历的方法: iterator() 可以得到对应的 Iterator 接口对象.
*
* Iterator: 迭代器
* ①. 获取 Iterator 接口对象:
* ②. 使用 while 循环和 Iterator 对象遍历集合中的每一个元素. 具体使用 Iterator 接口的
* hasNext() 和 next() 方法.
*/
Iterator iterator = collection.iterator(); while(iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
} /**
* 2.3 移除集合中的元素:
* remove(): 移除某一个指定的对象. 通过 equals() 方法来判断要移除的那个元素在集合中是否存在. 以及是否能够成功移除.
* removeAll()
* clear(): 使集合中的元素置空.
*/
// collection.clear(); // boolean result = collection.remove(p1);
// System.out.println(result);
//
// result = collection.removeAll(collection2);
//
// System.out.println(collection.size()); /**
* 2.4 用于检测集合的方法
* retains()
* retainsAll()
* isEmpty()
*
*/
System.out.println(collection.contains(new Person()));//false
System.out.println(collection.contains(p1));//true
System.out.println(collection.containsAll(collection2));//true System.out.println(collection.isEmpty()); //false
// collection.clear();
System.out.println(collection.isEmpty()); //true /**
* 2.5 其他方法
* toArray(): 返回这个集合对应的数组对象
* **T [] toArray(T[]): 涉及到泛型, 后面再说.
*
* equals(): 比较两个集合是否相等.
* hasCode():
*
*/
Object [] objs = collection.toArray();
System.out.println(objs.length); // Person p2 = new Person(); Collection collection3 = new HashSet();
collection3.add(p1);
collection3.add(p2); Collection collection4 = new HashSet();
collection4.add(p2);
collection4.add(p1); System.out.println(collection3.equals(collection4)); /**
* 使用增强 for 循环的方式来对集合进行遍历
*/
for(Object obj: collection){
System.out.println(obj);
}
}
}

Iterator 接口

Iterator 接口主要用于遍历 Collection 集合中的元素,Iterator 对象也被称为迭代器

Iterator 接口隐藏了各种 Collection 实现类的底层细节,向应用程序提供了遍历 Collection 集合元素的统一编程接口

Iterator 仅用于遍历集合,Iterator 本身并不提供承装对象的能力。如果需要创建 Iterator 对象,则必须有一个被迭代的集合

Java集合----概述、Collection接口、Iterator接口的更多相关文章

  1. java集合 之 Collection和Iterator接口

    Collection是List,Queue和Set接口的父接口,该接口里定义的方法即可用于操作Set集合,也可以用于List和Queue集合.Collection接口里定义了如下操作元素的方法. bo ...

  2. java集合(2)-Collection与Iterator接口

    1 package com.j1803.collectionOfIterator; 2 import java.util.ArrayList; 3 import java.util.Collectio ...

  3. Java集合【2】--iterator接口详解

    目录 一.iterator接口介绍 二.为什么需要iterator接口 三.iterator接口相关接口 3.1 ListIterator 3.2 SpitIterator 3.2.1 SpitIte ...

  4. 【Java】集合概述Collection、Map

    Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...

  5. Java集合概述、Set集合(HashSet类、LinkedHashSet类、TreeSet类、EnumSet类)

    Java集合概述.Set集合(HashSet类.LinkedHashSet类.TreeSet类.EnumSet类) 1.Java集合概述1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指 ...

  6. Java笔记:Java集合概述和Set集合

    本文主要是Java集合的概述和Set集合 1.Java集合概述 1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组 ...

  7. Java集合--概述

    目录 Java集合--概述 摘要 图示 正文 Java集合--概述 摘要 ​ 本文主要介绍集合的整体概念,并作为接下来Java集合实现类讲解的索引. 图示 ​ 这是在网上看到了这样一张图,感觉很清晰, ...

  8. Java集合——概述

    Java集合——概述 摘要:本文主要介绍了几种集合类型以及有关的一些知识点. 集合类图 类图 类图说明 所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collecti ...

  9. JAVASE(十四) 集合: 数组和集合、Collection、Iterator、List、Set、Map

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.数组和集合 1.1 内存中对数据进行存储和管理的“容器”:数组,集合 1.2 数组存储的特点和缺点 ...

随机推荐

  1. Spark性能优化(1)——序列化、内存、并行度、数据存储格式、Shuffle

    序列化 背景: 在以下过程中,需要对数据进行序列化: shuffling data时需要通过网络传输数据 RDD序列化到磁盘时 性能优化点: Spark默认的序列化类型是Java序列化.Java序列化 ...

  2. 【Maven学习】Maven打包生成包含所有依赖的jar包

    http://blog.csdn.net/u013177446/article/details/54134583 ******************************************* ...

  3. 将struts的jar包拷贝到WEB-INF/lib导致eclipse中配置好的javadoc失效

    我通过这个步骤导入了struts的jar包并且配置好了javadoc,且亲测可用: http://www.cnblogs.com/qrlozte/p/3173805.html 但是当我把struts的 ...

  4. 【Java】ParseInt方法

    parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字:如果不是,该方法将返回NaN,不再继续执行其他操作.但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试.这一 ...

  5. 用C#写一个多进程监控自动关机工具

    因为据说某server开着就很贵,所以我们跑完测试的job后就要赶紧关机才行,但是测试的job要跑很久,过程中又不需要干什么,所以就得有个守家的,有时候会走很晚.如果有一个自动化关机的工具就好了,当指 ...

  6. C语言高速入门系列(八)

    C语言高速入门系列(八) C语言位运算与文件 本章引言: 在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对 C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的 ...

  7. kafka的分区模式?

    当别人问这个问题的时候,别人肯定是想你是否看过源码.是否针对不同场景改过kafka的分区模式 这是别人最想知道的是,你的message如何负载均衡的发送给topic的partition 我们用kafk ...

  8. 【C#/WPF】获取项目的根目录(Root Directory)

    /// <summary> /// 获得项目的根路径 /// </summary> /// <returns></returns> public str ...

  9. Object中有哪些方法?

    有一种遗憾就是,每天都见到你,但是却不关注你!等到面试的时候才后悔莫及. Object类中有9大public方法: equals:判断两个对象"相等" hashCode:获取对象的 ...

  10. js学习笔记10----字符串的基本操作

    1.字符串的基本操作如下: 定义字符串: var str = "Hello World!" 字符串的基本操作如下: str.length-----返回字符串长度,这里返回12 st ...