`

Java集合框架——基础接口

    博客分类:
  • java
 
阅读更多

Java集合框架专题(学习的那个过程,请指教)



         Java集合框架——基础接口

 

先看图:

 

上图中关键的接口有:

Collection   Set   List   Map   还有一个Iterator,还有一个是上图没有的Queue接口,也是继承Collection的。

图中的

1,短虚线,表示接口;

2,长虚线,表示抽象类;

3,实线,表示实现类;

4,加强线,表示重点;(没别的意思,这图不是我自己画的,只能解释一下)

5,虚线加实心箭头,表示当前接口实现了一个指向接口定义的方法。

6,Collections与Arrays是两个支持类,实现了很多的静态方法可以直接使用。(一定要看看)

基本图介绍完后,看具体的接口方法,很大程度上是这样的,理解了接口,也就理解了框架。

 

第1点:Collection

 

int size();                               //获取长度

 

boolean isEmpty();                //判断为空

 

boolean contains(Object o);  //判断是包含当前元素,它有两个可选择的异常;1,当类型不匹配时,抛出ClassCastException;2,当集合为NULL时,抛出NullPointerException。

 

Iterator<E> iterator();          //迭代器,不能保证顺序的返回元素(除非能够保证集合都是某个类的实例)

 

Object[] toArray();                //返回一个数组(如果集合满足迭代器的规则,返回的数组必须保证顺序)

 

<T> T[] toArray(T[] a);          //看上一点,泛型要主要类型,会抛出ArrayStoreException与NullPointerException两种异常,其实在toArray()也加一个NullPointerException为可选比较好,实际也是有的。

 

boolean add(E e);                 //增加一个元素到集合

 

boolean remove(Object o);   //从集合中移除一个元素

 

下面这部分是对组的操作

boolean containsAll(Collection<?> c);

boolean addAll(Collection<? extends E> c);

boolean removeAll(Collection<?> c);

boolean retainAll(Collection<?> c);                 //与removeAll的功能相反,移除不属于c的元素。

void clear();                                                     //清空集合

 

下面两个是

boolean equals(Object o);     //比较两个对象是否相等

int hashCode();                      //主要是加快比较,如果调用equals方法相等,hashCode必须相等,反过来是不成立的,这样就可以通过比较两个hashCode,如果不相等,equals就不相等。

 

第二点:Set (略,因为与Collection一样)没有加新方法,至于为什么要这个,而直接用Collection,这个有点像是儿子与侄子的关系,就是为了让Set与List接口平级,也许我的说法有些问题,因为我还没有想到别的比喻。

 

第三点:List

在Collection接口的基础上加了以下方法:

boolean addAll(int index, Collection<? extends E> c); //从指定位置插入

 

E get(int index);                      //获取指定位置的元素

E set(int index, E element);     //修改指定位置的元素

void add(int index, E element);//在指定的位置插入元素

E remove(int index);                //根据位置移除元素

int indexOf(Object o);              //返回第一次出现o元素的位置

int lastIndexOf(Object o);        //与上一条相反,最后的位置

ListIterator<E> listIterator();              //调用listIterator(0);所以只关注下面的方法及可

ListIterator<E> listIterator(int index);//其实这个方法是list自己的实现,而Iterator为了统一调用,最后也是调用这个方法,listIterator(),再到listIterator(0);这个方法实现了list表的迭代器,是特性,肯定是重点关注。

List<E> subList(int fromIndex, int toIndex);//返回一个从fromIndex到toIndex的list

 

第四点:Map<K,V>

与Collection没有直接的继承关系,只不过有一个返回Collection的values方法。

int size();

boolean isEmpty();

boolean containsKey(Object key);

boolean containsValue(Object value);

V get(Object key);

V put(K key, V value);

V remove(Object key);

void putAll(Map<? extends K, ? extends V> m);

void clear();

Set<K> keySet();

Collection<V> values();

Set<Map.Entry<K, V>> entrySet();

interface Entry<K,V>

 

 

boolean equals(Object o);

int hashCode();

 

突然不想加备注了,读者自己看吧,总不能总是依靠别人来哦,因为我写的这个,不是知识博文,也是过程博文。

 

 

差点把Queue给忘记了。

第五点:Queue

这个在继承Collection后,也是增加了自己的方法:

boolean add(E e);

boolean offer(E e);

E remove();

E poll();

E element();

E peek();

 

它在concurrent包中得到了重用,在util包中有Deque接口继承了它,再是LinkedList与ArrayDeque实现了Deque接口。这一块目前,网上资料不多,应该重点关注(刚好学好了,再去写线程池ThreadPoolExecutor类会比较深入些)。

 

写到这了,别的还在看。

 

 

 

 

 

 

 

  • 大小: 60.6 KB
4
4
分享到:
评论
2 楼 man_yutao 2011-12-21  
表示关注
1 楼 hibernate_spring 2011-12-21  
看到开始比较接口,接下来是不是要开始比较方法的实现了。

相关推荐

    java基础——————试题库

    这份“java基础——————试题库”资源旨在帮助学习者系统地复习和深入理解Java的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...

    数据结构和Java集合框架源代码

    《数据结构和Java集合框架》是清华大学出版社出版的一本经典教材,主要涵盖了计算机科学中的核心概念——数据结构以及Java编程语言中的集合框架。这本书通过深入浅出的方式,讲解了如何用Java实现各种常用的数据结构...

    精通java集合框架--List,Set..

    ### 精通Java集合框架——List, Set, Map #### 概述 Java集合框架是一种高度抽象且灵活的数据组织工具,它通过一系列接口来定义不同类型的数据容器,并提供了丰富的操作这些容器的方法。本文将深入探讨Java集合...

    JAVA学习笔记————————

    5. **集合框架**:JAVA集合框架是存放和操作对象的容器,包括List、Set、Map等接口以及ArrayList、HashSet、HashMap等实现类。学习笔记会详细介绍它们的使用场景和操作方法。 6. **IO流**:JAVA的输入/输出流系统...

    java的集合框架1

    首先,我们关注Java集合框架的基础——Collection接口。Collection是所有集合类型的顶级接口,它定义了一组通用的操作方法,如add()、remove()和iterator()。Collection接口的主要特点是它存储一组不重复的元素,...

    java集合框架总结

    本文将深入解析Java集合框架的关键知识点,涵盖其核心组件、接口以及常用类。 #### 一、Collection概述与特性 **1. Collection作为根接口** Collection接口是Java集合框架的核心,它定义了对集合对象进行基本操作...

    Java语言程序设计——基础篇

    - **集合框架**:List、Set、Map等集合类的特性和应用场景。 - **输入输出流**:文件读写操作,网络通信等。 - **线程基础**:线程的概念、生命周期、同步与互斥等基础知识。 ### 5. 实战项目案例 - **简单案例...

    Java基础知识——Java入门与加深

    此外,Java集合框架是处理对象集合的重要工具,包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)和Map(如HashMap、TreeMap)等接口和实现类,提供了丰富的操作方法。 最后,Java的IO流和NIO(非...

    《软件开发基础(Java)》实验报告-Java集合框架.docx

    1. **理解Java集合框架的层次体系结构**:这涉及到集合接口与其实现类之间的关系,例如`Collection`接口与`List`、`Set`接口,以及具体的实现类如`ArrayList`、`LinkedList`、`HashSet`等。 2. **掌握List、Set、...

    java程序员必备——比较全的Java面试题

    Java集合框架是存储和管理对象的重要工具,如ArrayList、LinkedList、HashMap、HashSet等。面试中会考察对各种集合类的性能特点、操作方法和适用场景的理解,以及如何在实际问题中合理选择和使用。 四、多线程 Java...

    java大学教程——课件

    文件名"Java 大学实用教程"暗示了课程可能包含实用的编程示例,如文件I/O操作、多线程编程、集合框架的使用(如ArrayList、LinkedList、HashMap等)以及网络编程。理解如何读写文件、如何实现多线程并行执行以及如何...

    Java学习笔记——良葛格

    最后,笔记可能会涵盖一些实用的Java库,如集合框架(ArrayList、LinkedList、HashMap等)、IO库和JDBC(Java Database Connectivity)用于数据库交互。 总的来说,"良葛格的Java学习笔记"是一个全面而详尽的入门...

    java集合框架之Collection实例解析

    Java集合框架是Java编程语言中一个非常重要的组成部分,它为数据存储和...记住,理解和掌握Java集合框架不仅能提高开发效率,也是成为一名优秀Java程序员的基础。不断练习,深入探索,你将在Java集合的世界中游刃有余。

    C_C++_Java_Python——API

    Java API包括类库、接口和异常等,如集合框架(java.util包),I/O流(java.io包),网络编程(java.net包)等。Java API是通过JAR文件分发的,开发者通过import关键字引入所需类。理解Java API需要掌握面向对象编程...

    JAVA整合开发——新手必备

    3. **集合框架**:Java集合框架提供了丰富的数据结构和算法实现,如ArrayList、LinkedList、HashSet、HashMap等,它们在存储和操作数据时起到关键作用。 4. **输入/输出流**:Java的I/O流系统支持对文件、网络、...

    几个java小程序——自己写的

    5. **集合框架**:Java提供了丰富的集合框架,如ArrayList、LinkedList、HashSet、HashMap等,用于存储和操作对象。 6. **IO流**:Java的IO流用于读写数据,包括文件I/O和网络I/O。InputStream和OutputStream处理...

    Java 笔试题————Java找工作的宝典

    - **容器**:ArrayList、LinkedList、HashSet、HashMap等是Java集合框架中的常见容器,它们各自有不同的特点和适用场景。 - **迭代器**:用于遍历集合中的元素,提供hasNext()和next()方法。 - **泛型**:Java 5...

    java web项目——51商城

    了解Java的基础语法、类、接口、异常处理、多线程以及集合框架等是项目开发的基础。 2. **Servlet与JSP**:Java Web开发中,Servlet用于处理HTTP请求,JSP则负责动态生成HTML页面。理解Servlet生命周期,掌握JSP...

Global site tag (gtag.js) - Google Analytics