`
zyslovely
  • 浏览: 231471 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java源码解读 集合类

 
阅读更多
1 A.contain(Object o);方法,由abstractCollection实现
public boolean contains(Object o) {
	Iterator<E> e = iterator();
	if (o==null) {
	    while (e.hasNext())
		if (e.next()==null)     //如果o为null,e.next==null,也返回true
		    return true;
	} else {
	    while (e.hasNext())     
		if (o.equals(e.next()))
		    return true;
	}
	return false;
    }


2 A.remove(Object o);方法,由abstractCollection实现
 public boolean remove(Object o) {
	Iterator<E> e = iterator();
	if (o==null) {
	    while (e.hasNext()) {
		if (e.next()==null) {
		    e.remove();      //如果o为null,e.next==null,也返回true
		    return true;
		}
	    }
	} else {
	    while (e.hasNext()) {
		if (o.equals(e.next())) {
		    e.remove();
		    return true;
		}
	    }
	}
	return false;
    }


3.A.retainAll(c)删除c中不包含的对象
 public boolean retainAll(Collection<?> c) {
	boolean modified = false;
	Iterator<E> e = iterator();
	while (e.hasNext()) {
	    if (!c.contains(e.next())) {
		e.remove();
		modified = true;
	    }
	}
	return modified;
    }


4.arraylist插入对象是,与初始建立的size需要比较,扩大size
    public void ensureCapacity(int minCapacity) {
	modCount++;
	int oldCapacity = elementData.length;
	if (minCapacity > oldCapacity) {
	    Object oldData[] = elementData;
	    int newCapacity = (oldCapacity * 3)/2 + 1;    //新建的size的大小
    	    if (newCapacity < minCapacity)
		newCapacity = minCapacity;    
            // minCapacity is usually close to size, so this is a win:
            elementData = Arrays.copyOf(elementData, newCapacity);
	}
    }


分享到:
评论

相关推荐

    java源码解读-JavaSource:Java源码解读

    "JavaSource:Java源码解读"项目旨在帮助开发者深入探索Java的内部工作原理,从而更好地运用和优化代码。在这个项目中,我们可以看到一系列针对Java源码的分析与讨论,主要聚焦于JavaSource-master这一核心部分。 ...

    java源码文档src

    Java源码中充满了异常处理机制,比如`Exception`类和它的子类。通过查看源码,我们可以看到何时、如何抛出异常,以及如何编写优雅的异常处理代码,这对编写健壮的程序至关重要。 5. **多线程编程** `java.lang....

    java源码解读-java-src:java源码解读

    在这个"java-src:java源码解读"项目中,我们可以探索Java的核心库,包括JVM(Java虚拟机)、集合框架、并发机制、I/O流、网络编程等多个关键领域的实现细节。这将帮助我们提升编程技能,优化代码性能,并能更好地...

    java源码解读-JavaAPI:jdk源码解读分析

    本篇文章将对Java API的部分关键组件进行源码解读,帮助读者深入理解其工作原理。 1. **对象创建与内存管理**: - `Object`类:所有Java类的基类,包含了如`clone()`, `equals()`, `hashCode()`等方法。理解`...

    集合类底层源码解析汇总

    java所有集合类底层源码解析汇总,包括ArrayList、HashMap、HashSet、LinkedList、TreeMap、HashSet、ConcurrentHashMap等集合框架的底层实现源码大白话解读。

    Java SE 源码 Java SE 源码

    源码解读能揭示反射在动态类型语言特性中的作用。 7. **集合框架**:Java集合框架包括数组、列表、队列、映射等数据结构,如`ArrayList`、`HashMap`等。源码揭示了这些数据结构的实现细节,对于优化和定制自己的...

    java源码解读-ITG-JavaBook01:Java面试高频源码解读

    《Java源码解读-ITG-JavaBook01: Java面试高频源码解读》是一部针对Java程序员面试准备的深入学习资料。在这个项目中,我们将会探索Java语言的一些核心概念和常用库的源代码,帮助开发者更好地理解Java的内部机制,...

    java面试题_源码解读(3题)

    这里我们将深入探讨三道常见的Java面试题,它们涵盖了基础、并发和集合框架等方面,帮助你提升对Java源码的掌握。 1. **ArrayList与LinkedList的区别** - **ArrayList** 是基于动态数组的数据结构,它提供了随机...

    Java学习笔记(源码)

    学习笔记会详细解析各种集合类的特性和使用场景。 5. **输入/输出(I/O)**:Java I/O流用于读写文件、网络通信等,包括文件流、字符流、对象流等。这部分内容会解释流的概念,以及如何使用BufferedReader、...

    java源码解读-jdk_reading:java源码日常阅读与注解

    《Java源码解读——深入理解JDK》 Java作为一门广泛应用的编程语言,其源码是许多开发者探索技术原理、提升编程技能的重要资源。"java源码解读-jdk_reading:java源码日常阅读与注解"项目,旨在帮助开发者深入理解...

    交易平台系统JSP源码Java源码

    总的来说,要理解和学习这个交易平台系统的JSP源码,你需要具备扎实的Java基础,理解Web开发的核心概念,熟悉JSP、Servlet和数据库交互,同时,能够解读项目结构和运行说明。通过深入研究,你可以从中学到如何构建一...

    Java rt.jar 源码分析

    `java.util`包提供了集合框架、日期时间、队列、映射等工具类。`java.io`和`java.nio`则分别提供了基于流的I/O和非阻塞I/O操作。 在分析rt.jar源码的过程中,我们可以学习到以下关键知识点: 1. 类加载机制:`java...

    Java底层知识点、源码解读,技术栈相关原理知识点、工具解读最佳实践、功能点实战,问题排查,开发技巧等

    Java作为一门广泛使用的编程语言,其底层知识点和源码解读对于深入理解并优化代码性能至关重要。本主题将探讨以下几个方面: 1. **Java虚拟机(JVM)**: JVM是Java程序运行的基础,它负责字节码的解释执行,内存...

    java源码解读-java8-master:解读java8

    总结来说,"java8-master"项目对Java 8的源码进行了深度解读,涵盖了函数式编程、Stream API、默认方法、Optional、日期时间API等核心知识点。通过学习这个项目,开发者可以更好地理解和利用Java 8的新特性,提升...

    java毕设源码范例和详细说明(由浅入深,深度解读在资料后半部分).docx

    Java毕设源码范例和详细说明(由浅入深,深度解读在资料后半部分)提供了一个完整的Java项目示例,涵盖了Java语言的多个方面,包括面向对象编程思想、集合框架、输入/输出操作、异常处理、多线程编程、设计模式、...

    FastJava-源码.rar

    《深入解析FastJava源码》 FastJava是一个高效、轻量级的Java编程库,它的设计目标是提高Java开发的效率和性能。通过对FastJava源码的深入学习,我们可以了解到许多关于Java编程的最佳实践和优化技巧。下面,我们将...

    Thinking In Java源码 source code fo Thinking in Java

    - `ArrayList`, `LinkedList`, `HashSet`, `HashMap`等集合类的使用,展示了Java集合框架的强大功能,包括动态扩容、迭代器、泛型等。 7. **多线程**: - `Thread`类的子类化,`Runnable`接口的实现,线程同步...

    基于java的java源码Eclipse的Script插件 JSEditor.zip

    以上是对“基于java的java源码Eclipse的Script插件 JSEditor.zip”及相关文件的详细解读,这个插件为Java开发者提供了丰富的辅助功能,提升了他们在Eclipse中的开发效率。通过深入研究其源码,开发者可以学习到如何...

    CppUnit源码解读

    **CppUnit源码解读** CppUnit是C++编程语言中的一种单元测试框架,它借鉴了JUnit(Java语言的单元测试框架)的设计理念,为C++开发者提供了自动化测试工具。通过理解CppUnit的源码,我们可以深入掌握其工作原理,更...

    java项目源码超市管理系统素材

    1. **Java基础**:包括类、对象、继承、多态、接口等面向对象编程的基本概念。 2. **Java Web开发**:使用Servlet和JSP进行服务器端处理,以及MVC设计模式的应用。 3. **数据库操作**:通过JDBC与数据库交互,可能...

Global site tag (gtag.js) - Google Analytics