`
_Yggd
  • 浏览: 88693 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

论java的集合框架

    博客分类:
  • java
阅读更多
JAVA集合小结

还有就是java的泛化和Map结合起来用可以传回多个不同类型的值


public static void workByEntry(Map<String, Student> map) {
        Set<Map.Entry<String, Student>> set = map.entrySet();
        for (Iterator<Map.Entry<String, Student>> it = set.iterator(); it.hasNext();) {
            Map.Entry<String, Student> entry = (Map.Entry<String, Student>) it.next();
            System.out.println(entry.getKey() + "--->" + entry.getValue());


发现没有哟? 还可以将对象等等都放进去... ..


下面是网上的文章:
源:http://www.blogjava.net/EvanLiu/archive/2007/11/12/159884.html
有序否
允许元素重复否
Collection


List


Set
AbstractSet


HashSet
TreeSet
是(用二叉树排序)
Map
AbstractMap

使用key-value来映射和存储数据,Key必须惟一,value可以重复
HashMap
TreeMap
是(用二叉树排序)


几个面试常见问题:
1.Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?
   A:Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。

2.Q:大致讲解java集合的体系结构
   A:List、Set、Map是这个集合体系中最主要的三个接口。
      其中List和Set继承自Collection接口。
      Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。
      List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。
      Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。
      SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。

3.Q:Comparable和Comparator区别
    A:调用java.util.Collections.sort(List list)方法来进行排序的时候,List内的Object都必须实现了Comparable接口。
        java.util.Collections.sort(List list,Comparator c),可以临时声明一个Comparator 来实现排序。
        Collections.sort(imageList, new Comparator() {
            public int compare(Object a, Object b) {
                int orderA = Integer.parseInt( ( (Image) a).getSequence());
                int orderB = Integer.parseInt( ( (Image) b).getSequence());
                return orderA - orderB;
           }
        });
        如果需要改变排列顺序
        改成return orderb - orderA 即可。

4.Q:简述equals()和hashCode()
    A:...不知道。下回分解

public interface
Collection
            extends Iterable


public interface
List
            extends Collection


public abstract class
AbstractList
            extends AbstractCollection
            implements List


public class
Vector
            extends AbstractList
            implements List,
                                   RandomAccess,
                                   java.lang.Cloneable,
                                   java.io.Serializable
基于Array
是“sychronized”的


public class
ArrayList
        extends AbstractList
        implements List,
                          RandomAccess,
                          Cloneable,
                          java.io.Serializable
基于Array
ArrayList是非同步的。所以在性能上要比Vector优越一些


public class
LinkedList
        extends AbstractSequentialList
        implements List,
                          Queue,
                          Cloneable,
                          java.io.Serializable
不基于Array

基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作




List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别
public abstract class AbstractSet
    extends AbstractCollection
    implements Set


public class HashSet
    extends AbstractSet
    implements Set, Cloneable, java.io.Serializable
HashSet的存储方式是把HashMap中的Key作为Set的对应存储项


public class LinkedHashSet
    extends HashSet
    implements Set, Cloneable, java.io.Serializable


public class TreeSet
    extends AbstractSet
    implements SortedSet, Cloneable, java.io.Serializable
它是通过SortedMap来实现的




public interface Map<K,V>


public abstract class AbstractMap<K,V>
    implements Map<K,V>


public class HashMap<K,V>
    extends AbstractMap<K,V>
    implements Map<K,V>, Cloneable, Serializable


public class TreeMap<K,V>
    extends AbstractMap<K,V>
    implements SortedMap<K,V>, Cloneable, java.io.Serializable

HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)



更详细的可以看:
http://www.frontfree.net/view/article_695.html
http://blog.csdn.net/happyzhm5/archive/2007/03/17/1532101.aspx
http://blog.csdn.net/Java_apprentice/archive/2007/07/20/1700351.aspx

解析Java对象的equals()和hashCode()的使用: http://tmsoft.lsxy.com/index.php?id=82&load=read
分享到:
评论

相关推荐

    Java集合框架(JCF:Java Collections Framework)之概述

    Java 集合框架(JCF:Java Collections Framework)之概述 Java 集合框架(JCF:Java Collections Framework)是 Java 语言中的一组类库,用于实现集合操作的统一标准。集合是计算机科学中的一种基本概念,来源于...

    java集合框架之概述

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来组织和操作数据。集合框架(JCF)的引入极大地提升了Java程序员的工作效率,使得数据结构和算法的使用更加标准化和易于理解。 首先...

    浅谈JAVA集合框架及其应用.pdf

    本文将从源码分析角度出发,深入探讨Java集合框架中常用的接口和实现类的底层数据结构及其特点,并探讨其在实际业务开发中的应用选择。 Java集合框架中的数据结构主要分为两大类:Collection集合和Map集合。...

    java集合类总结

    Java集合框架是Java编程语言中一个非常核心的部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理对象。在Java中,集合主要分为两大类:Collection和Map。本文将对Java集合框架中的Collection接口...

    基于数据结构与简化内存模型的Java集合教学方法研究.pdf

    Java集合框架是Java编程语言中用于存储、操作和传递数据集合的一组接口和类。集合框架的内容对于Java学习者来说是难点之一,其中包含诸多概念和实现细节。本文提出了一种新的教学方法,通过数据结构和简化的内存模型...

    Java学籍管理系统论文

    Java集合框架(如ArrayList、LinkedList、HashMap等)可能被用来存储和操作大量学生、课程及成绩数据。 3. **数据库连接与SQL操作**:Java通过JDBC(Java Database Connectivity)接口与数据库交互。文章可能会讲述...

    语义网 java 范畴论小论文

    范畴论在Java集合框架中的应用,比如Set接口,它代表了没有重复元素的集合,类似于数学中的集合概念。Map接口则对应于键值对的集合,类似于数学中的函数或关系。这些概念通过范畴论的视角得以统一,强调了不同抽象...

    JAVA并行计算的一些资料 论文

    3. **并发集合框架**:Java并发库(java.util.concurrent)提供了并发友好的集合,如ConcurrentHashMap、CopyOnWriteArrayList等,它们内部实现了线程安全,减少了开发者在并发环境下的同步工作。 4. **...

    JAVA课程设计论文.zip

    5. **集合框架**:Java集合框架是存储和管理对象的重要工具,包括List、Set、Queue和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。论文会介绍它们的特点和用法。 6. **输入/输出流(I/O Stream...

    JAVA中集合类一些常用类的总结

    在Java集合框架中,迭代器(Iterator)是一个非常关键的概念,它允许我们遍历集合中的元素。`hasNext()`检查是否还有更多元素,`next()`返回下一个元素,而`remove()`则移除当前元素。在示例代码中,迭代器被用来...

    java论文参考资料(供参考)

    3. **Java集合框架**: - List、Set、Map接口:不同的数据结构,用于存储和管理对象。 - HashMap、ArrayList、LinkedList等实现:各种数据结构的实现细节及其优缺点。 - 集合操作:如迭代、排序、查找等常见操作...

    JAVA开发JAVA SMART系统-系统框架设计与开发(源代码+论文)

    在Java SMART系统中,开发者可能运用到Java集合框架、多线程、网络编程以及I/O流等核心概念和技术。 智能系统部分,可能涉及人工智能、机器学习或大数据处理等前沿领域。在Java环境中,可以利用开源库如Weka进行...

    JAVA图书馆书库管理系统论文_java管理系统_java图书馆_JAVA图书馆书库管理系统论文_管理系统java_图书管理系统

    1. **Java编程基础**:Java作为系统开发的基础语言,需要熟练掌握其语法特性,包括类、对象、接口、异常处理、多线程、集合框架等。此外,面向对象的设计原则,如封装、继承和多态,也是构建系统架构的关键。 2. **...

    java毕业设计论文及代码实现

    此外,还要理解Java集合框架,如ArrayList、LinkedList、HashMap等数据结构的使用。 二、MVC设计模式 在Java毕业设计中,通常会涉及MVC(Model-View-Controller)设计模式。这是一种常用的软件架构模式,用于分离...

    学生信息管理系统(JAVA源码+数据库sql+论文)

    3. **集合框架**:JAVA的集合框架,如ArrayList、HashMap等,用于存储和管理大量学生信息,提供了灵活的数据结构和操作。 4. **IO流**:JAVA的IO流用于文件操作,如保存和读取学生信息到本地文件或数据库。 5. **...

    Java私塾Java中级部分教材

    本教材章节旨在让读者深入了解Java集合框架的基本概念与实践应用。学习目标涵盖了以下几点: 1. **掌握集合框架的基础概念**:了解集合框架的核心理念及其在程序设计中的作用。 2. **掌握`Collection`接口**:理解`...

    java 毕业设计论文

    2. **Java集合框架**:Java集合框架包括ArrayList、LinkedList、HashSet、HashMap等,理解它们之间的区别和应用场景,例如何时使用ArrayList进行顺序访问,何时使用HashMap进行快速查找。 3. **异常处理**:Java...

    JAVA课程设计(含源代码源程序以及论文)

    此外,你会看到如何利用Java的API库,如集合框架、IO流和网络编程接口,来处理数据和实现特定功能。 源程序则包括了整个项目的所有源文件,可能包括主类、接口、类、配置文件等。这些文件共同协作,形成一个可执行...

    JAVA SMART系统-系统框架设计与开发(源代码 论文).zip

    还有可能涉及到Java集合框架的高效使用,异常处理策略,以及性能优化技巧。源码中的日志记录、错误处理和调试信息也是理解系统运行状态的重要线索。 总的来说,这个压缩包是一个宝贵的教育资源,涵盖了从系统设计到...

    计算机毕业设计 JAVA SMART系统-系统框架设计与开发(源代码+论文) 代码论文 范文 模板 资源 JAVA程序源码

    在设计和开发过程中,学生需要掌握Java语法、类与对象、接口、异常处理、多线程、集合框架、IO流等基础知识。 2. **系统框架设计**:项目可能采用了某种Java应用框架,如Spring Boot、Struts或Spring MVC,这些框架...

Global site tag (gtag.js) - Google Analytics