Collection 集合框架概述

1、集合、数组都是为了存储数据而产生的

2、为什么需要集合?为了更灵活方便的存储数据,且集合能存储的容量比数组更大

3、存储的概念还停留在内存活动范围内,也只是短暂存储,不涉及硬盘存储

数组的弊端?

- 一定初始化之后,数组的长度不可再改变,长度固定

- 必须指明数组类型,存储的类型也要受到限制

- 可操作的方法有限,且效率不高

- 有序,可重复的数据,不能存储无序的数据

Java集合体系:

Collection & Map 

collection 存储单列数据,类似,数组

map 存储两列数据,是一种映射关系 K V对,且K必须唯一,V可以重复

collection再往下细分为 List & Set

- List 元素是可重复的,有序的

- Set 元素是不可重复,无序的

可以说Map的Key就相当于Set,然后Value就是List

其中Map的获取所有的key和所有的value就明示了这个意思

获取所有Key,map.ketSet()

获取所有Value,map.values()

List 的三个主要实现类

- Vector 初代目的ArrayList,种种原因已经弃用了

- ArrayList 数组列实现类,可以理解为一个长度可变化和类型兼容的数组,有序的,增删麻烦,查找快

- LinkedList 链式列实现类,特性在于无序的,实现增删容易,但是查找困难

Set的三个主要实现类

- HashSet

- LinkedHashSet

- TreeSet

Map接口的几个实现类

- HashMap

- LinkedHashMap

- TreeMap

- HashTable

- Properties

Collection通用操作的方法

Collections的主要方法1:

 1 public class CollectionTest {
2 public static void main(String[] args) {
3 // 演示使用的是集合下面的一个实现类
4 Collection collection = new ArrayList();
5
6 // 添加一个任意类型元素,可返回一个布尔值以查看是否添加成功
7 boolean add = collection.add("AA");
8 System.out.println("add ? " + add);
9 collection.add(123);
10 collection.add(true);
11 collection.add(new Date());
12
13 // 返回集合容器的大小,或者说元素个数
14 int size = collection.size();
15 System.out.println("size ? " + size);
16
17
18 Collection collection2 = new ArrayList();
19 collection2.add("2的元素1");
20 collection2.add("2的元素2");
21 // addAll(Collection collection)方法 把参数的集合对象的全部元素全部注入到调用此方法的集合对象中
22 collection.addAll(collection2);
23
24 System.out.println(collection);
25
26 // 清除集合内的元素
27 collection2.clear();
28
29 // isEmpty(Object obj) 判断集合元素中是否还有元素
30 boolean empty = collection2.isEmpty();
31 System.out.println("empty ? " + empty);
32
33 /*
34 增加元素 add(Object obj)
35 导入元素 addAll(Collection collection)
36 非空判断 isEmpty()
37 清空元素 clear()
38 */
39
40 // contains(Object obj);是否包含某一元素?
41 boolean contains = collection.contains("AA");
42 System.out.println(contains);
43
44 // containsAll(Collection collection);参数的集合容器中的所有元素是否在调用此方法的集合容器中都存在?
45 boolean containsAll = collection.containsAll(collection2);
46 // Arrays.asList(Object ...elements) 将数个元素装进至ArrayList集合中
47
48 /*
49 contains(Object obj);
50 containsAll(Collection collection);
51 */
52
53 // 移除元素,存在执行移除,返回true 反之false
54 boolean remove = collection.remove(true);
55 System.out.println(remove);
56
57 // 把参数的集合容器的所有元素,在调用此方法的集合对象中全部移除
58 boolean removeAll = collection.removeAll(collection2);
59
60 /*
61 remove(Object obj)
62 removeAll(Collection collection)
63 */
64
65 // 求集合1和集合2共有的元素,并返回给当前调用此方法的集合,如果一个都没有则返回false
66 boolean retainAll = collection.retainAll(collection2);
67 System.out.println(retainAll);
68 System.out.println(collection);
69
70 // equals() 集合和集合之间的比较,两者的元素一模一样返回true
71 collection.equals(collection2);
72
73 // 转换为数组 因为没有规定泛型类型,所以默认Object类型
74 Object[] objects = collection.toArray();
75
76 /*
77 static List Arrays.asList(); 转集合对象
78 Object[] toArray(); 转数组对象
79 */
80 }
81 }

Collections的主要方法2:

迭代器对象的使用

 1 public class CollectionTest {
2 public static void main(String[] args) {
3 List list = new ArrayList();
4 list.add(100);
5 list.add(200);
6 list.add(300);
7 // 获取该集合对象的迭代器对象
8 Iterator iterator = list.iterator();
9
10 // 判断该集合是否还有下一个元素
11 while (iterator.hasNext()){
12 //如果有就返回当前元素,并指向下一个元素
13 Object next = iterator.next();
14 System.out.print(next + "\t");
15 }
16
17 // iterator.hasNext() 这个迭代器处在集合容器 -1 索引位置
18 // 它会判断下一个索引位置上面是否还有元素存在,类似游标的作用
19
20 // next(); 将迭代器对象iterator向下一个索引移动,
21 // 并返回这个索引位置集合容器的元素(没有泛型,返回Object)
22
23 // remove(); 移除元素?
24 // 当遍历到指定的元素时可以equals(obj)判断,为true 调用iterator.remove()方法移除
25 }
26 }

JDK5提供的循环语法糖

ForEach的底层实现就是Iterator迭代器

public class CollectionTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add(100);
list.add(200);
list.add(300); //使用ForEach遍历
for (Object object:list){
System.out.println(object);
}
}
}

【Java】Collection 集合框架概述的更多相关文章

  1. Java 集合系列之一:JCF集合框架概述

    容器,就是可以容纳其他Java对象的对象.Java Collections Framework(JCF)为Java开发者提供了通用的容器 java集合主要划分为四个部分: Collection(Lis ...

  2. Java集合源代码剖析(一)【集合框架概述、ArrayList、LinkedList、Vector】

    Java集合框架概述 Java集合工具包位于Java.util包下.包括了非常多经常使用的数据结构,如数组.链表.栈.队列.集合.哈希表等.学习Java集合框架下大致能够分为例如以下五个部分:List ...

  3. Java集合框架概述和集合的遍历

    第三阶段 JAVA常见对象的学习 集合框架概述和集合的遍历 (一) 集合框架的概述 (1) 集合的由来 如果一个程序只包含固定数量的且其生命周期都是已知的对象,那么这是一个非常简单的程序. 通常,程序 ...

  4. Java SE 核心 II【Collection 集合框架】

    Collection集合框架 在实际开发中,需要将使用的对象存储于特定数据结构的容器中.而 JDK 提供了这样的容器——集合框架,集合框架中包含了一系列不同数据结构(线性表.查找表)的实现类.集合的引 ...

  5. Java 高级-集合框架

    参考资料 参考 HashMap 类似 C++ 中的 STL 标准模板库,Java 也在 java.util 包中封装了一套常用数据结构及其算法,称为集合框架.所有的集合框架都包含如下内容: 接口:代表 ...

  6. Collection集合框架与Iterator迭代器

    集合框架 集合Collection概述 集合是Java中提供的一种容器,可以用来存储多个数据 集合与数组的区别: 数组的长度固定,集合的长度可变 数组中存储的是同一类型的元素,可以存储基本数据类型值, ...

  7. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  8. java.util 集合框架集合

    java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...

  9. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  10. java的集合框架之一

    java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木 ...

随机推荐

  1. uniapp 拨打电话功能

    phoneNumber进行动态调用时候一定要添加引号,否则会报错 1 call() { 2 uni.makePhoneCall({ 3 phoneNumber: 'this.leads.tel' // ...

  2. golang 的 net/http 和 net/rpc 的区别, rpc 效率比 http 高?

    在Go语言中,net/http 和 net/rpc 是两个不同的包,它们分别用于实现不同的网络通信模式: net/http: net/http 包主要用于构建Web服务和客户端,它实现了HTTP协议, ...

  3. 鸿蒙HarmonyOS实战-ArkTS语言基础类库(并发)

    一.并发 并发是指在一个时间段内,多个事件.任务或操作同时进行或者交替进行的方式.在计算机科学中,特指多个任务或程序同时执行的能力.并发可以提升系统的吞吐量.响应速度和资源利用率,并能更好地处理多用户 ...

  4. mvn 打包报错:no compiler is provided in this environment

    最近公司换了电脑,系统也从 win7 升级到 win11,开发环境都重新安装了一遍,然后在 idea 用mvn 执行打包命令 mvn clean package 报错: no compiler is ...

  5. 判断是不是ie浏览器 加上ie11

    var b_version = navigator.appVersion; var version = b_version.split(";"); var trim_Version ...

  6. LeetCode 621. 任务调度器 (Java)

    题目: 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.C ...

  7. nginx 反向代理(proxy)与负载均衡(upstream)应用实践

    集群介绍 集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器.这些服务器之间可以彼此通信,协同向 ...

  8. 化合物同位素理论同位素分布计算软件Isopro 3.0

    大家好,今天分享一款软件,即可以计算化合物理论同位素分布的软件Isopro 3.0.在做质谱的实验时,特别对合成的化合物进行质量表征时,往往要求ppm绝对值在5以内,对质谱的分辨率要求很高.对于小分子 ...

  9. ubuntu 安装 github desktop

    原文: https://gist.github.com/berkorbay/6feda478a00b0432d13f1fc0a50467f1 sudo wget https://github.com/ ...

  10. 全志T113-i+玄铁HiFi4开发板硬件说明书(2)

    前 言 本文档主要介绍开发板硬件接口资源以及设计注意事项等内容,测试板卡为全志T113-i+玄铁HiFi4开发板,由于篇幅问题,本篇文章共分为上下两集,点击账户可查看更多内容详情,开发问题欢迎留言,感 ...