记性逐渐不好,有的东西忘记,本文复习备忘用,先从最基本的java基础集合开始,集合分为Collection接口和Map接口,这两个接口又衍生出了很多子接口,下面对着2个接口分别作介绍。
一,collection接口
直接实现Collection的类和继承他的接口下图
可以看到有4个接口4个类,下面主要对AbstractCollection类和List,Queue,Set接口进行逐一研究
Collection接口中定义的方法如下图
实现他的类和继承他的接口都这些方法,这些方法的具体功能就不多介绍,其中很多方法的实现都由AbstractCollection来完成,AbstractCollection的方法如下图
AbstractCollection类对Collection接口的方法进行了实现,并且重写了toString方法,方法前面有小A的表示抽象方法,这个就交给具体的继承类根据自己的特性自己实现,具体的方法有size方法和iterator()方法,size方法主要是实现队列接口Queue的类进行重写,如ArrayBlockingQueue的size方法如图
每个实现了iterator方法的类都有自己的迭代器类来处理数据遍历如ArrayList类的迭代器类实现如下图:
ArrayBlockingQueue类的实现方法如下:
简单找出两个集合总相同的元素的方法
package basic.collection.basic; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Random; /** * <p>Title: Test1.java</p> * <p>Description: 从一个集合中 * <p>Copyright: Copyright (c) 2014</p> * @author 雪含心 * @date 2015年1月9日 */ public class Test1 { public static void main(String[] args) { Collection<String> c1 = new ArrayList<String>(); System.out.println("遍历c1"); for(int i = 0; i < 10; i ++){ String ranStr = i + "|"; System.out.print( ranStr); c1.add(ranStr); } System.out.println(); System.out.println("遍历c2"); Collection<String> c2 = new ArrayList<String>(); for(int j = 1; j < 20; j ++){ Random random = new Random(); String ranStr = random.nextInt(j) + "|"; System.out.print(ranStr); c2.add(ranStr); } System.out.println(); // 从c1中删除不包含c2的元素,即留住2个集合都有的元素,List会有重复 c2.retainAll(c1); System.out.println("c2的大小 " + c2.size()); for(String s:c2){ System.out.print(s); } System.out.println(); System.out.println("遍历s1"); Collection<String> s1 = new HashSet<String>(); for(int i = 0; i < 20; i ++){ String ranStr = i + "|"; System.out.print( ranStr); s1.add(ranStr); } System.out.println(); System.out.println("遍历s2"); Collection<String> s2 = new HashSet<String>(); for(int j = 1; j < 20; j ++){ Random random = new Random(); String ranStr = random.nextInt(j) + "|"; System.out.print(ranStr); s2.add(ranStr); } // 从s1中删除不包含s2的元素,即留住2个集合都有的元素,Set不重复 s2.retainAll(s1); System.out.println(); System.out.println("s2的大小 " + s2.size()); for(String s:s2){ System.out.print(s); } } }
可以看到 这里面用到了AbstractCollection方法的retainAll如图
效率实际是比较低下的
假如我把上面的集合中存放的对字符串换成对象会出现情况呢,这个就牵扯到ArrayList的contains方法和HashSet的contains方法,HashSet使用的是HashMap的contains方法,具体的做法是找到传入对象的hash值
根据hash值找到对象,然后再比较对象的eques方法是否相等,ArrayList是直接用eques方法比较的
ArrayList
HashMap
相关推荐
---java---集合总结笔记
### JAVA基础-集合类 #### 一、集合的概述与分类 ##### 1. 集合概述 集合是Java编程语言中一种重要的数据结构,它用于存储一系列的对象。与数组相比,集合提供了更加灵活的方式来处理数据。集合的一个显著特点是它...
### Java集合与算法知识点 #### 一、集合接口与实现 **Java集合框架**是Java标准库的一个核心组成部分,它提供了存储和操作集合的一系列接口和实现类。这些集合类库的设计遵循了一些基本的原则,例如将接口与实现...
java集合类知识总结--思维导图文件xmind xmind文件类型 总结了java常用集合相关问题 包括map、set、list、数组等
JAVA集合是Java编程中至关重要的概念,主要用于存储和操作对象。集合类的特点在于它们只用于存储对象,且长度可变,允许存储不同类型的对象。与数组相比,集合提供了更大的灵活性,因为数组的长度是固定的,且只能...
### JAVA数据库-数据库集合 #### Java数据库编程简介 在Java中,通过JDBC(Java Database Connectivity)接口可以实现与各种关系型数据库的连接与交互。JDBC提供了一套标准的API,允许开发者在Java应用中执行SQL...
总结,Java集合遍历是日常开发中常见的操作,理解不同集合的遍历方式对于优化代码性能至关重要。本教程提供的源代码详细解释了ArrayList、LinkedList、HashSet和HashMap的遍历,以及Java 8的流API使用,有助于加深对...
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
Educoder题目:Java入门 - 数组进阶答案解析
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。...本资源主要分享了Java基础知识--集合的PPT课件+总结+代码,供大家学习交流~
java集合总结
Java知识点总结大全(四) -- 集合.xmind,其他里面还有基础知识,面向对象,io,集合,网络,sql的总结
### Java中的集合学习总结 #### 集合框架概述 在Java编程语言中,集合框架是一种存储和操作数据的重要机制。它提供了灵活多样的数据结构,以满足不同场景下的需求。集合框架主要由三大核心部分组成:集(Set)、列表...
java面试-Java+最常见的+200++面试题汇总+答案总结汇总 java面试-Java并发编程最全面试题 123道 java面试-Java集合框架常见面试题 java面试-Java虚拟机(JVM)面试题 51道 java面试-Kafka知识汇总 18道 java面试-...
总结而言,"mchange-commons-java-0.2.11.jar"是一个强大的Java工具库,它集成了多种实用功能,旨在帮助开发者更高效地完成工作。了解并掌握这类库的使用,能够提升Java开发者的专业技能,使他们在面对复杂项目时更...
这几个思维导图详细的整理了相关知识点的总结,以尽可能详细全面的进行总结.
标题与描述均提到了“全面总结Java泛型--实例”,这表明文章旨在深入解析Java泛型的概念,并通过具体示例来展示其应用。Java泛型是Java编程语言的一个强大特性,它允许在编译时检查类型安全,并且所有的强制转换都是...