`

java总结-集合-1

阅读更多

记性逐渐不好,有的东西忘记,本文复习备忘用,先从最基本的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
 

 

 

  • 大小: 10.5 KB
  • 大小: 13.1 KB
  • 大小: 13.8 KB
  • 大小: 13.8 KB
  • 大小: 13.8 KB
  • 大小: 10.7 KB
  • 大小: 14.6 KB
分享到:
评论

相关推荐

    ---java---集合总结笔记

    ---java---集合总结笔记

    JAVA基础-集合类

    ### JAVA基础-集合类 #### 一、集合的概述与分类 ##### 1. 集合概述 集合是Java编程语言中一种重要的数据结构,它用于存储一系列的对象。与数组相比,集合提供了更加灵活的方式来处理数据。集合的一个显著特点是它...

    Java笔记-集合与算法

    ### Java集合与算法知识点 #### 一、集合接口与实现 **Java集合框架**是Java标准库的一个核心组成部分,它提供了存储和操作集合的一系列接口和实现类。这些集合类库的设计遵循了一些基本的原则,例如将接口与实现...

    java集合类知识总结--思维导图文件xmind

    java集合类知识总结--思维导图文件xmind xmind文件类型 总结了java常用集合相关问题 包括map、set、list、数组等

    JAVA-集合总结

    JAVA集合是Java编程中至关重要的概念,主要用于存储和操作对象。集合类的特点在于它们只用于存储对象,且长度可变,允许存储不同类型的对象。与数组相比,集合提供了更大的灵活性,因为数组的长度是固定的,且只能...

    JAVA数据库-数据库集合

    ### JAVA数据库-数据库集合 #### Java数据库编程简介 在Java中,通过JDBC(Java Database Connectivity)接口可以实现与各种关系型数据库的连接与交互。JDBC提供了一套标准的API,允许开发者在Java应用中执行SQL...

    Java 实例 - 集合遍历源代码-详细教程.zip

    总结,Java集合遍历是日常开发中常见的操作,理解不同集合的遍历方式对于优化代码性能至关重要。本教程提供的源代码详细解释了ArrayList、LinkedList、HashSet和HashMap的遍历,以及Java 8的流API使用,有助于加深对...

    Java集合框架总结

    ### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...

    Educoder题目:Java入门 - 数组进阶答案解析.md

    Educoder题目:Java入门 - 数组进阶答案解析

    Java基础知识--集合

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。...本资源主要分享了Java基础知识--集合的PPT课件+总结+代码,供大家学习交流~

    java集合-面试总结 .pos

    java集合总结

    Java知识点总结大全(四) -- 集合.xmind_高一数学集合知识点整理

    Java知识点总结大全(四) -- 集合.xmind,其他里面还有基础知识,面向对象,io,集合,网络,sql的总结

    Java中的集合学习总结

    ### Java中的集合学习总结 #### 集合框架概述 在Java编程语言中,集合框架是一种存储和操作数据的重要机制。它提供了灵活多样的数据结构,以满足不同场景下的需求。集合框架主要由三大核心部分组成:集(Set)、列表...

    Java面试题资料合集-44套.rar

    java面试-Java+最常见的+200++面试题汇总+答案总结汇总 java面试-Java并发编程最全面试题 123道 java面试-Java集合框架常见面试题 java面试-Java虚拟机(JVM)面试题 51道 java面试-Kafka知识汇总 18道 java面试-...

    mchange-commons-java-0.2.11.jar

    总结而言,"mchange-commons-java-0.2.11.jar"是一个强大的Java工具库,它集成了多种实用功能,旨在帮助开发者更高效地完成工作。了解并掌握这类库的使用,能够提升Java开发者的专业技能,使他们在面对复杂项目时更...

    java 基础-面向对象-线程-集合-IO流-网络 思维导图大全

    这几个思维导图详细的整理了相关知识点的总结,以尽可能详细全面的进行总结.

    全面总结Java泛型--实例

    标题与描述均提到了“全面总结Java泛型--实例”,这表明文章旨在深入解析Java泛型的概念,并通过具体示例来展示其应用。Java泛型是Java编程语言的一个强大特性,它允许在编译时检查类型安全,并且所有的强制转换都是...

Global site tag (gtag.js) - Google Analytics