文章目录

  • 一、集合的设计背景
  • 二、集合的概念
  • 三、集合的分类
  • 四、List、Set、Map的区别?
  • 五、遍历集合
    • 5.1 list集合遍历
      • 1.for-each循环遍历集合
      • 2.for遍历集合
      • 3.迭代器遍历结合
    • 5.2 map集合遍历

一、集合的设计背景

在没有集合之前,java中有一种方法可以存储对象(对象的引用)或者基本数据类型,那就是数组。但是数组有缺点,数组一旦初始化,长度是固定的,且只能存放相同数据类型的数据; 数组中提供的方法十分有限,对于添加,删除,插入数据等操作时非常不便,同时效率不高 ;数组 有序、可重复。对于无序、不可重复的需求,不能满足 。

基于以上必须解决的问题,java提供了对象(对象的引用)的保存方式,除了数组外,其余就被称为集合类。

二、集合的概念

为了使程序方便存储和操作数据不固定的一组数据,JDK提供了Java集合类,所有集合类放在Java.util包中 。

集合的特点:

  1. 不能存储基本数据类型,但是可以存储引用类型和包装类型,并以相同的方式工作。
  2. 对于动态数组,链接表,树和散列表 的实现是高效的,有一套成熟的API了。
  3. 容易扩展,增强代码的复用性。例如泛型。

三、集合的分类

Java集合类可以分为两大类:一类是实现Collection接口;一类是实现Map接口

Collection接口:基本的接口,有两个重要的子接口List接口Set接口。可以容纳一组集合元素(Element)。

Map接口:与Collection接口并列关系,Map提供键值对的映射。

如下图: 虚框的是抽象类,实框是实现类。虚线是继承,实线是实现。

Collection接口、List接口、Set接口以及相关类的关系 :

Map接口与Collection接口不同 :

四、List、Set、Map的区别?

比较 List Set Map
继承接口 Collection Collection
常见实现类 ArrayList、LinkedLisk、Vector HashSet、LinkedHashSet、TreeSet HashMap、HashTable、ConcurrentHashMap
常用方法 add()、remove()、get()、size()、contains() add()、remove()、size() put()、get()|、remove()、keySet()、entrySet()
元素 可重复 不可重复(equaks()判断) 不可重复
顺序 有序 无序(由hashcode决定)
存储空值 vector、arraylist、linkedlist可以存储多个null hashset、linkedset可以存储一个null. treeset不能存储null. hashmap 、linkedhashmap key与value均可以为null. treemap key不可以为null,value可以为null. hashtable、concurrenthashmap key与value均不能为null.
线程安全 vector线程安全 concurrenthashmap、hashtable线程安全

五、遍历集合

5.1 list集合遍历

1.for-each循环遍历集合

public class DemoTest {public static void main(String[] args) {List<String> list=new ArrayList<String>();list.add("Hello");list.add("World");list.add("哈哈哈哈");//第一种遍历方法使用 For-Each 遍历 Listfor (String str : list) {System.out.println(str);}}
}

结果:

Hello
World
哈哈哈哈

2.for遍历集合

public class DemoTest {public static void main(String[] args) {List<String> list=new ArrayList<String>();list.add("Hello");list.add("World");list.add("哈哈哈哈");for(int i=0;i<list.size();i++) {System.out.println(list.get(i));}}
}

结果:

Hello
World
哈哈哈哈

3.迭代器遍历结合

public class DemoTest {public static void main(String[] args) {List<String> list=new ArrayList<String>();list.add("Hello");list.add("World");list.add("哈哈哈哈");Iterator<String> ite=list.iterator();while(ite.hasNext())//判断下一个元素之后有值{System.out.println(ite.next());}}
}

结果:

Hello
World
哈哈哈哈

5.2 map集合遍历

import java.util.*;public class Test{public static void main(String[] args) {Map<String, String> map = new HashMap<String, String>();map.put("1", "value1");map.put("2", "value2");map.put("3", "value3");//第一种:普遍使用,二次取值System.out.println("通过Map.keySet遍历key和value:");for (String key : map.keySet()) {System.out.println("key= "+ key + " and value= " + map.get(key));}//第二种System.out.println("通过Map.entrySet使用iterator遍历key和value:");Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第三种:推荐,尤其是容量大时System.out.println("通过Map.entrySet遍历key和value");for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第四种System.out.println("通过Map.values()遍历所有的value,但不能遍历key");for (String v : map.values()) {System.out.println("value= " + v);}}
}

Java集合:Java集合概念相关推荐

  1. Java集合深入解析(一)——集合的基本概念

    从本章开始,我们将深入学习Java中的集合内容.据统计,在实际业务开发中,Java集合的使用频率要远超其他类库中大部分类,可以说,集合类库是Java中最为重要的类库.本章将从集合的基础知识.集合的分类 ...

  2. JAVA中的集合概念

    JAVA中的集合: 集合的概念:一种操作方便的对象容器,可以存储并管理多个对象(存储管理多个对象的一种工具),很多时候替换数组 集合相关的内容位于java.util包中,使用需要导包: 集合的分类:c ...

  3. 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )

    文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...

  4. Java对象容器——集合Set

    集合就是数学中的集合的概念:所有的元素都具有唯一的值,元素在其中没有顺序. 数学中的集合具有唯一性(没有重复元素),Java中的集合也是. 比如放三个值1,1,1输出这个集合的话只会输出一个1. Ha ...

  5. 万字长文深入理解java中的集合-附PDF下载

    文章目录 1. 前言 2. List 2.1 fail-safe fail-fast知多少 2.1.1 Fail-fast Iterator 2.1.2 Fail-fast 的原理 2.1.3 Fai ...

  6. java中的集合框架_JAVA中的集合框架(上)List

    第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...

  7. 【Java】Collection集合和泛型

    学习目标:会存取,掌握特性 学习方式:学习顶层接口/抽象类的共性方法,使用底层的子类创建对象使用 1 集合框架 集合类的继承体系: Collection接口: ·············1) List ...

  8. Java基础-HashMap集合

    目录 一级目录 二级目录 三级目录 Map接口的常用方法 2.Map集合的遍历 第一种方式:获取所有的key,通过遍历key,来遍历value 3.哈希表数据结构 1.hashMap集合底层是哈希表/ ...

  9. java 中的集合_JAVA中的集合

    JAVA中集合,是java中的基础概念,今天接着跟讲课准备课件的机会,重新整理一下关于JAVA中的集合的概念. 集合的概念 java中的集合类是用来存放对象的 集合相当于一个容器,里面包容着一组对象- ...

  10. JAVA 面向对象和集合知识点总结

    转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46481759  在Android编程或者面试中经常会遇到JAVA 面向对象和集合的 ...

最新文章

  1. 消息队列之 RabbitMQ
  2. 测试oracle删除干净,彻底卸载Oracle
  3. 远程安装Oracle Server
  4. 美国发布35页科技趋势报告!
  5. 美国空军学习编程,为五角大楼节省了上百万!
  6. SpringMVC错误提示(三)
  7. iOS学习笔记26-视频播放
  8. Gateway配合sentinel自定义限流_Spring Cloud Gateway网关如何快速实施限流方案?-Part 6...
  9. 【电路】电容(三)——耦合、退耦电容
  10. gitlab-runner错误之:New runner. Has not connected yet(runner注册成功到了gitlab,但是前面的图标是灰色三角形)
  11. Bochs、虚拟软盘与BootLoader
  12. itext html to pdf设置边距,itextpdf特定页面上的不同边距
  13. C++---暂时的休憩
  14. 国内计算机视觉与机器学习研究团队
  15. Linux日志文件系统(EXT4、XFS、JFS)及性能分析
  16. 基于手机蓝牙的arduino遥控小车
  17. selenium操作各种浏览器
  18. 【论文精读】CMT: Convolutional Neural Networks MeetVision Transformers
  19. 首届阿里巴巴研发效能嘉年华
  20. 开过全新BMW 3系 “鱼与熊掌”都可兼得

热门文章

  1. 【阿里云IoT+YF3300】7.物联网设备表达式运算
  2. AutoResetEvent 与 ManualResetEvent区别
  3. CS3825EO 2X25W D类功放芯片 耐压5V-26V 可替换AD52068
  4. openstack的endpoint
  5. 更新KB5005565补丁后win10局域网打印机不能共享打印
  6. 磁盘类型由动态转换成基本
  7. 王学岗——————H265实现低延时投屏,从零实现高清无损投屏(对应第六节课)
  8. 使用阿里云物联网平台IoT Studio控制海康摄像头旋转
  9. 怎么从华为nova4导入计算机,华为Nova4怎么用USB连接电脑调试教程
  10. 自学Java一点都不难!