Java集合:Java集合概念
文章目录
- 一、集合的设计背景
- 二、集合的概念
- 三、集合的分类
- 四、List、Set、Map的区别?
- 五、遍历集合
- 5.1 list集合遍历
- 1.for-each循环遍历集合
- 2.for遍历集合
- 3.迭代器遍历结合
- 5.2 map集合遍历
一、集合的设计背景
在没有集合之前,java中有一种方法可以存储对象(对象的引用)或者基本数据类型,那就是数组。但是数组有缺点,数组一旦初始化,长度是固定的,且只能存放相同数据类型的数据; 数组中提供的方法十分有限,对于添加,删除,插入数据等操作时非常不便,同时效率不高 ;数组 有序、可重复。对于无序、不可重复的需求,不能满足 。
基于以上必须解决的问题,java提供了对象(对象的引用)的保存方式,除了数组外,其余就被称为集合类。
二、集合的概念
为了使程序方便存储和操作数据不固定的一组数据,JDK提供了Java集合类,所有集合类放在Java.util
包中 。
集合的特点:
- 不能存储基本数据类型,但是可以存储引用类型和包装类型,并以相同的方式工作。
- 对于动态数组,链接表,树和散列表 的实现是高效的,有一套成熟的API了。
- 容易扩展,增强代码的复用性。例如泛型。
三、集合的分类
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集合概念相关推荐
- Java集合深入解析(一)——集合的基本概念
从本章开始,我们将深入学习Java中的集合内容.据统计,在实际业务开发中,Java集合的使用频率要远超其他类库中大部分类,可以说,集合类库是Java中最为重要的类库.本章将从集合的基础知识.集合的分类 ...
- JAVA中的集合概念
JAVA中的集合: 集合的概念:一种操作方便的对象容器,可以存储并管理多个对象(存储管理多个对象的一种工具),很多时候替换数组 集合相关的内容位于java.util包中,使用需要导包: 集合的分类:c ...
- 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )
文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...
- Java对象容器——集合Set
集合就是数学中的集合的概念:所有的元素都具有唯一的值,元素在其中没有顺序. 数学中的集合具有唯一性(没有重复元素),Java中的集合也是. 比如放三个值1,1,1输出这个集合的话只会输出一个1. Ha ...
- 万字长文深入理解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 ...
- java中的集合框架_JAVA中的集合框架(上)List
第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...
- 【Java】Collection集合和泛型
学习目标:会存取,掌握特性 学习方式:学习顶层接口/抽象类的共性方法,使用底层的子类创建对象使用 1 集合框架 集合类的继承体系: Collection接口: ·············1) List ...
- Java基础-HashMap集合
目录 一级目录 二级目录 三级目录 Map接口的常用方法 2.Map集合的遍历 第一种方式:获取所有的key,通过遍历key,来遍历value 3.哈希表数据结构 1.hashMap集合底层是哈希表/ ...
- java 中的集合_JAVA中的集合
JAVA中集合,是java中的基础概念,今天接着跟讲课准备课件的机会,重新整理一下关于JAVA中的集合的概念. 集合的概念 java中的集合类是用来存放对象的 集合相当于一个容器,里面包容着一组对象- ...
- JAVA 面向对象和集合知识点总结
转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46481759 在Android编程或者面试中经常会遇到JAVA 面向对象和集合的 ...
最新文章
- 消息队列之 RabbitMQ
- 测试oracle删除干净,彻底卸载Oracle
- 远程安装Oracle Server
- 美国发布35页科技趋势报告!
- 美国空军学习编程,为五角大楼节省了上百万!
- SpringMVC错误提示(三)
- iOS学习笔记26-视频播放
- Gateway配合sentinel自定义限流_Spring Cloud Gateway网关如何快速实施限流方案?-Part 6...
- 【电路】电容(三)——耦合、退耦电容
- gitlab-runner错误之:New runner. Has not connected yet(runner注册成功到了gitlab,但是前面的图标是灰色三角形)
- Bochs、虚拟软盘与BootLoader
- itext html to pdf设置边距,itextpdf特定页面上的不同边距
- C++---暂时的休憩
- 国内计算机视觉与机器学习研究团队
- Linux日志文件系统(EXT4、XFS、JFS)及性能分析
- 基于手机蓝牙的arduino遥控小车
- selenium操作各种浏览器
- 【论文精读】CMT: Convolutional Neural Networks MeetVision Transformers
- 首届阿里巴巴研发效能嘉年华
- 开过全新BMW 3系 “鱼与熊掌”都可兼得
热门文章
- 【阿里云IoT+YF3300】7.物联网设备表达式运算
- AutoResetEvent 与 ManualResetEvent区别
- CS3825EO 2X25W D类功放芯片 耐压5V-26V 可替换AD52068
- openstack的endpoint
- 更新KB5005565补丁后win10局域网打印机不能共享打印
- 磁盘类型由动态转换成基本
- 王学岗——————H265实现低延时投屏,从零实现高清无损投屏(对应第六节课)
- 使用阿里云物联网平台IoT Studio控制海康摄像头旋转
- 怎么从华为nova4导入计算机,华为Nova4怎么用USB连接电脑调试教程
- 自学Java一点都不难!