JAVA集合类浅谈:
前言:
集合包是Java中最常用的包 集合包中常用的主要有Collection和Map两个接口的实现类Collection用于存放多个单对象Map用于存放Key-Value形式的键值对。 Collection中常用的又分为两种类型的接口List和Set两者最明显的差别为List支持放入重复的对象而Set不支持。List接口常用的实现类有ArrayList、LinkedList、Vector以及StackSet接口常用的实现类有HashSet、TreeSet
类图:
对于collection中的具体实现类不想多讲,相信使用JAVA一段时间的人基本都了解,大家可以看看API基本就可以了。注意一下源码的实现,这样才可以选择自己适用和编写高性能的代码。
稍微记录一下Iterator模式。
iterator()是用于遍历集合类的标准访问方法。
它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。
它的具体实现是这样的。
定义一个接口类
public interface Iterator {
boolean hasNext();
Object next();
void remove();
}
在AbstractList抽象类中定义了一个内部类:
private class Itr implements Iterator {
int cursor = 0;
int lastRet = -1;
int expectedModCount = modCount;
}
iterator()方法的定义
public Iterator iterator() {
return new Itr();
}
next()方法
public Object next() {
checkForComodification();
try {
Object next = get(cursor);
lastRet = cursor++;
return next;
} catch(IndexOutOfBoundsException e) {
checkForComodification();
throw new NoSuchElementException();
}
}
使用:
Collection c = new ArrayList();
c.add("abc");
c.add("xyz");
for(Iterator it = c.iterator(); it.hasNext(); ) {
String s = (String)it.next();
System.out.println(s);
}
具体代码就不多解释了,额外说一下,list接口在iterator迭代的时候每次都会检查list对象是否发生改变(checkForComodification()),如果长度发生改变了,会抛出ConcurrentModificationException异常。
数组的两大缺点:
1。若改变数组的大小就要创建一个新的数组,并需要从原数组复制所有的数据到新的数组
2。数组元素在内存中依次顺序存储,这意味着向数组插入一项要移动数组中的其他元素
- 大小: 61.3 KB
分享到:
相关推荐
Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...
Java 集合框架(JCF:Java Collections Framework)之概述 Java 集合框架(JCF:Java Collections Framework)是 Java 语言中的一组类库,用于实现集合操作的统一标准。集合是计算机科学中的一种基本概念,来源于...
Java集合框架是Java编程语言...综上所述,ArrayList在Java集合框架中扮演着重要角色,理解和熟练使用ArrayList有助于编写高效、可维护的代码。在实际开发中,应根据具体需求选择适合的数据结构,以达到最优的性能表现。
import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; /** * @Author Ziph * @date 2020/2/19 * @Email mylifes1110@163.com */ public class TestDemo implemen
在Java编程中,ArrayList是集合框架中一个重要的类,属于List接口的实现,它提供了动态数组的功能,允许我们在集合中存储、添加、删除元素,并且可以按索引访问。这篇文章将深入探讨ArrayList的内部实现原理,帮助...
从 Java 5 开始,ArrayList 和其他集合类可以指定元素的类型,例如: ```java ArrayList<String> words = new ArrayList(); List<Integer> nums = new ArrayList(); ``` 七、ArrayList 类的注意事项 ArrayList 类...
Java集合类ArrayList简单雇员管理系统 本文将从标题、描述、标签和部分内容中提取相关知识点,并进行详细的解释。 标题和描述 从标题和描述中,我们可以看到这是一个使用Java集合类ArrayList实现的简单雇员管理...
本指南将深入探讨HashMap、HashSet、HashTable、LinkedHashMap、LinkedHashSet、ArrayList、LinkedList、ConcurrentHashMap等主要集合类的实现原理,以及它们在实际应用中的选择与比较。 首先,HashMap是最常用的...
"Java 中 ArrayList 类的使用" Java 中的 ArrayList 类是一种常用的数据结构,它可以实现可变长度的数组。ArrayList 类提供了多种方法来操作数组中的元素,包括添加、删除、获取、设置、查找等。 构造方法 ...
Java集合框架中,ArrayList是一种常见的集合实现类,用于存储和操作对象集合。ArrayList基于动态数组的数据结构,因此它能够提供自动扩容的功能,同时也能够快速地进行随机访问。本篇文档将深入探讨ArrayList的内部...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
Java中的ArrayList类是Java集合框架的一部分,它是List接口的一个实现,主要用于存储可变大小的有序对象集合。ArrayList基于数组实现,允许动态地增加或减少元素,提供了丰富的操作方法,适用于需要频繁增删元素的...
Java试题-2:ArrayList类动态代理 什么是动态代理 动态代理该怎么实现
1.1ArrayList类概述【理解】 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 ArrayList集合的特点 底层是数组实现的,长度可以变化 泛型的使用 用于约束集合中存储元素的数据类型 ...
ava基础 基础知识 面向对象基础 Java基本数据类型 string和包装类 final关键字特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 ...Java集合详解8:Java集合类细节精讲 JavaWeb
"Java集合类总结" ...这些类都是JDK1.1中引入的旧式集合类,现在已经被新的集合类所取代。 Java集合类提供了多种方式来存储和管理数据,开发者可以根据需要选择合适的集合类来实现自己的应用程序。
深入的洞察到Java集合框架的核心组件:Map, List, 和 Set。首先,深入分析了HashMap的内部结构,包括它的数组+链表+红黑树的数据结构。重要的是理解如何处理并发问题,特别是在Java 8中对HashMap的优化,如高低位...