Java 集合简介 一
什么是集合?
集合就是由若干个确定的元素所构成的整体。例如,5只小兔构成的集合:

在数学中,我们经常遇到集合的概念。例如:
● 有限集合
○ 一个班所有的同学构成的集合;
○ 一个网站所有的商品构成的集合;
● 无限集合
○ 整数集合
○ 有理数集合
○ 实数集合
为什么要在计算机中引入集合呢?
这是为了方便处理一组类似数据,例如:
● 计算所有同学的总成绩和平均成绩;
● 列举所有的商品名称和价格;
在 Java 中,如果一个 Java 对象可以在内部持有若干其它 Java 对象,并对外提供访问接口,我们把这种 Java 对象称为 集合。
案例:
String[] names = new String[10]; //可以持有 10 个 String 对象
names[0] = "Hello"; //放入 String 对象
names[1] = "World";
String name = names[0]; //获取 String 对象
既然 Java 提供了数组来充当集合,那么,为什么我们还需要其它集合类?
这是因为数组有如下限制:
● 数组大小固定不变
● 数组只能按索引存取
因此,我们需要各种不同类型的集合类来处理不同的数据,例如:
● 可变大小的顺序链表
● 保证无重复元素的集合
Collection
Java 标准库自带的 java.util包提供了集合类:Collection,它是除 Map外所有其它集合类的根接口。
Java 的 java.util包主要提供了以下三种类型的集合:
● List:一种有序列表的集合;
● Set:一种保证没有重复元素的集合;
● Map:一种通过键值(key-value)查找的映射表集合;
Java 集合的设计有以下几个特点:
● 实现了接口和实现类相分离。比如,有序表的接口是 List,具体的实现类有 ArrayList,LinkList 等;
● 支持泛型,我们可以限制在一个集合中只能放入同一种数据类型的元素。比如:List<String> list = new ArrayList<>();//只能放入 String 类型
Java 访问集合总是通过统一的方式——迭代器(Iterator)来实现,它最明显的好处在于无需知道集合内部元素是按什么方式存储的。
由于Java的集合设计非常久远,中间经历过大规模改进,我们要注意到有一小部分集合类是遗留类,不应该继续使用:
● Hashtable:一种线程安全的Map实现;
● Vector:一种线程安全的List实现;
● Stack:基于Vector实现的LIFO的栈。
还有一小部分接口是遗留接口,也不应该继续使用:
● Enumeration:已被Iterator取代。
Java 集合简介 一的更多相关文章
- java集合简介
java集合主要包括以下几点 Java 集合概述 Collection 接口 Iterator 接口 Set List Map Collections 工具类 Enumeration 1.java集合 ...
- Java集合---简介
概念 集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充.Java最基本的集合接口:Collection接口 集合的特点 性能高 容易扩展和修改 Collection的常用子类 L ...
- Java 集合系列(一)
Java集合系列文章将以思维导图为主要形式来展示知识点,让零碎的知识形成体系. 这篇文章主要介绍的是[Java 集合的基本知识],即Java 集合简介. 毕业出来一直使用 PHP 进行开发,对于大学所 ...
- Java集合容器简介
Java集合容器主要有以下几类: 1,内置容器:数组 2,list容器:Vetor,Stack,ArrayList,LinkedList, CopyOnWriteArrayList(1.5),Attr ...
- [转载]Java集合容器简介
Java集合容器主要有以下几类: 1,内置容器:数组 2,list容器:Vetor,Stack,ArrayList,LinkedList, CopyOnWriteArrayList(1.5),Attr ...
- Java从零开始学二十(集合简介)
一.为什么需要集合框架 数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象.或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题 二.集合框架主要接口 ...
- Java连载81-枚举类型,生成五个不重复的随机数,集合简介
一.枚举类型 1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子. package com.bjpowernode.java_learning; public class D81_1_ ...
- Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
概要 前面,我们已经学习了ArrayList.接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解.内容包括::1 fail-fast简介2 fail-fast示例 ...
- Java集合源码分析(四)Vector<E>
Vector<E>简介 Vector也是基于数组实现的,是一个动态数组,其容量能自动增长. Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是 ...
随机推荐
- 以寡治众各个击破,超大文件分片上传之构建基于Vue.js3.0+Ant-desgin+Tornado6纯异步IO高效写入服务
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_218 分治算法是一种很古老但很务实的方法.本意即使将一个较大的整体打碎分成小的局部,这样每个小的局部都不足以对抗大的整体.战国时期 ...
- 小白之Python基础(二)
一.字符串 1.字符串编码发展: 1)ASCII码: 一个字节去表示 (8个比特(bit)作为一个字节(byte),因此,一个字节能表示的最大的整数就是255(二进制11111111 = 十进制255 ...
- MySQL源码解析之执行计划
MySQL源码解析之执行计划 MySQL执行计划介绍 MySQL执行计划代码概览 MySQL执行计划总结 一.MySQL执行计划介绍 在MySQL中,执行计划的实现是基于JOIN和QEP_TAB这两个 ...
- JS的简介
JS式JavaScript的简称,它是一门弱语言,它可以实现让网页动起来 JS的构成 核心(ECMAScript) 文档对象模型(DOM)-- Document Object Module 浏览器对 ...
- DL基础:cs231n assignment 1
cs231n assignment 1 20210804 - 20210808. 目录 cs231n assignment 1 总结 KNN 思想 cross-validation 编程细节 SVM ...
- django 通过MQTT连接阿里云
Django MQTT 连接阿里云 目录 Django MQTT 连接阿里云 目录 一.安装库 1.安装Python对接mqtt协议库,paho-mqtt 二. 设备认证,一机一密型接入 三.问题 1 ...
- Haproxy部署及控制台使用手册
一.介绍 1.简介 HAProxy是一个使用C语言编写开源软件,提供高可用,负载均衡,以及基于TCP(四层)和HTTP(七层)的应用程序代理: HAProxy特别适用于那些负载特大的web站点,这些站 ...
- KingbaseES 参数 - ignore_char_null_check
KingbaseES 基于PostgreSQL进行了大量的Oracle兼容性开发,为了能同时兼容Oracle 和 PG 的特性,增加参数进行控制.以下介绍 KingbaseES 下特有的参数 igno ...
- Mysql_索引总结笔记
Mysql 索引总结 1. 聚簇索引 InnoDB 引擎使用的就是聚簇索引,就是主键的索引,是一种数据的存储方式.所有的数据都是存储在索引的叶子结点上(与MySAM 引擎不同,MySAM是传统方式), ...
- 【android 逆向】arm if
#include <stdio.h> void if1(int n){ //if else语句 if(n < 10){ printf("the number less th ...