JAVA集合接口及类

  • 各接口及类关系图

  • Iterable

    • 所有集合的初始接口,实现该接口可进行foreach操作,只有一个iterator()方法,并返回iterator类型;
    • Iterable在java.lang下,Iterator在java.util下,Iterator主要包括hasNext(), next(), remove();
    • 所有实现了Iterable就可以操作迭代器iterator, 但能使用迭代器iterator就未必实现了Iterable接口,如数组?
    • 为什么需要Iterable? 因为Iterator中的next(), hasNext()依赖于当前迭代器中迭代的位置(指针),如果Collection直接实现Iterator会使迭代位置不可知,需要增加reset重置当前迭代,但也只能存在一个当前迭代;而Iterable每次可从头开始计数,而且多个迭代互不影响。
  • Collection
    • 一个基本集合接口,包含一组Object元素;
    • 在java.util下,同时Collections是一个工具类,包含对集合各类操作的静态方法,比如sort;
    • Collection下有三个子接口:List, Set, Queue
  • List
    • 有序(保持插入数据时的顺序)、可重复的集合;
    • 子类ArrayList是基于数组实现的,但size动态可变化的;
    • 子类LinkedList实现 List<E>, Deque<E>, Cloneable, Serializable,双向链表接口;可作为双向Queue使用,也可以当做Stack使用;
    • ArrayList查询效率高于LinkedList, 因为访问LinkedList中的元素,需要每次从头指针开始移动,而ArrayList可直接通过数组下标的方式获取;但如果LinkedList通过Iterator, 则效率与ArrayList不会相差多少,因为Iterator方式遍历会缓存前后节点;
    • ArrayList插入和删除的效率会比LinkedList低,因为ArrayList每次插入或删除元素时,该元素的后续下标位置也要做相应的调整。
    • JDK1.2以后,Vector也是通过List接口实现的,Vector是线程安全的,ArrayList是非线程安全;
    • Stack是Vector子类,其主要特征是先进后出(FILO, First In Last Out)。
  • Set
    • Set集合里的元素没有顺序,但不能包含重复元素;
  • Map
    • 当把HashMap中的value都看成null时,可视为Set,其key的存储形式与Set一致;
    • TreeMap维护key以某种排序方式;

原文地址:https://www.cnblogs.com/stpan/p/9485039.html

时间: 2024-09-28 22:39:20

JAVA集合接口及类的相关文章

java的接口、类、属性、方法各有哪些修饰符

参考博客:http://blog.csdn.net/cao_tao199612/article/details/7458245 1. 接口的修饰符只有:public 2. 类的修饰符分为:可访问控制符和非访问控制符两种. 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract :最终类修饰符 final 1.公共类修饰符 public : Java 语言中类 的可访问控制符只有一个: public 即公共的.每个 Java 程序的主类都必须是 public 类

集合接口和类

1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进行处理.从JDK1.5以后,这种状态得到了改进:可以使用泛型来限制集合里元素的类型,并让集合记住所有集合元素的类型(参见具体泛型的内容). Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包

java集合框架--ArrayList类、Vector和LinkedList类

1.ArrayList类概述 底层数据结构是数组,查询块,增删慢. 线程不安全,效率高. 2.ArrayList案例 2.1存储字符串并遍历 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class ArrayListDemo { public static void main(String[] args) { //创建ArrayL

java security接口和类的分布

     包    类/接口名称    说明 com.sun.security.auth.module JndiLoginModule 执行用户名/密码认证使用LDAP或者NIS com.sun.security.auth.module KeyStoreLoginModule 执行基于密钥存储的登录认证 com.sun.security.auth.module Krb5LoginModule 使用kerberos协议进行认证 java.lang SecurityException 表明违反安全,

java集合框架--工具类Collections

1.Collections概述 是针对集合操作的工具类. 2.Collection和Collections的区别? Collection:是单列集合的顶层接口,而Collections是针对集合操作的工具类. Collection有子接口List和Set,而Collections有对集合进行排序和二分查找的方法. 3.Collections工具类的功能 public static <T> void sort(List<T> list):默认情况下是对集合的自然排序. public

Java集合中那些类是线程安全的

线程安全类 在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的.在jdk1.2之后,就出现许许多多非线程安全的类. 下面是这些线程安全的同步的类: vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用.在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的. statck:堆栈类,先进后出 hashtable:就比hashmap多了个线程安全 enumeration:枚举,相当于迭代器 除了这些之外,其他的都是非线程安全

java集合(工具类Arrays)

/* * Arrays:用于操作数组的工具类,里面都是静态方法. * toString方法:返回指定数组内容的字符串表示形式. * asList方法:返回一个受指定数组支持的固定大小的列表 * toArray方法:将集合变成数组. */ import java.applet.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class CollectionsDemo3 { p

Java集合的常用类以及特点

集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序的(存取顺序一致),可以通过List脚标来获取指定元素;而Set不可以有重复元素,元素是无序的. List接口中,比较常用的类有三个:ArrayList.Vactor.LinkedList. ArrayList :线程不安全的,对元素的查询速度快. Vector :线程安全的,多了一种取出元素的方式:枚举(Enumerat

java集合框架工具类Collections,集合的操作

1 import java.util.*; public class asList { public static void main(String args[]) { // int arr[] = {1,2,3,4,45}; // List<int[]> list = Arrays.asList(arr); // list.add("qq"); 这里不能添加,因为数组的长度是固定的 // Integer[] nums = {2,4,5,2}; // List<Int