java学习总结——集合框架
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
(以上内容摘自百度百科)
按照我的理解呢,可能有接触过java的都应该用过队列。刚开始学的时候是自己写一个自定义队列,使用时候在调用自己所写的队列中自己写的增删查改等等的功能。而集合框架呢则省去了这个麻烦~他是已经给我们定义好了的一套东东,里面包括着很多,好像比较常用的(或者说是我比较会使用的)有ArrayList,LinkedList,Vector,HashSet,TreeSet,HashMap。嗯。这个博客里面也就对这些进行下总结。
首先总结一下各种List。
package listTest; import java.util.ArrayList; import java.util.LinkedList; import java.util.Vector; public class ListTest { public static void main(String[] args) { System.out.println("ArrayList测试:"); arrayListTest(); System.out.println("\n"+"LinkedList测试"); linkedListTest(); System.out.println("\n"+"Vector测试"); vectorTest(); } /* * arraylist */ public static void arrayListTest() { // 实例化一个ArrayList对象 ArrayList<Object> arrayList = new ArrayList<Object>(); // 添加数据 arrayList.add(3); arrayList.add(2); arrayList.add(1); arrayList.add("a"); arrayList.add("bcd"); arrayList.add(4); // 遍历输出 for (int i = 0; i < arrayList.size(); i++) { System.out.print(arrayList.get(i) + " "); } } /* * LinkedList */ public static void linkedListTest() { LinkedList<Object> linkedList = new LinkedList<Object>(); linkedList.add(3); linkedList.add(2); linkedList.add(1); linkedList.add("a"); linkedList.add("bcd"); linkedList.add(4); // 遍历输出 for (int i = 0; i < linkedList.size(); i++) { System.out.print(linkedList.get(i) + " "); } } /* * Vector */ public static void vectorTest(){ Vector<Object> vector = new Vector<Object>(); vector.add(3); vector.add(2); vector.add(1); vector.add("a"); vector.add("bcd"); vector.add(4); // 遍历输出 for (int i = 0; i < vector.size(); i++) { System.out.print(vector.get(i) + " "); } } }
单纯的通过代码来观察,可能会觉得这三个东西好像没有什么区别。因为他们都是创建一个对象,然后在向里面add内容,然后在遍历输出。可是他们的本质是不同的。ArrayList显而易见是通过数组来实现的。数组这个可能就更了解了。与之相比LinkedList则是通过链表来实现的。数组与链表不同主要是数组他的物理地址是连续的。而链表则不是,链表则是有一块儿负责存放下一个单位的地址的区域。所以在执行一些操作上,例如向队列中添加元素的时候,数组则是要找到所添加的位置,再把从这个位置到末尾的数据都给复制一遍。而链表实现这些就不需要,他只需把前一位置所指向的地址改一下就行了,就像把链条卸开,在中间填一个铁环一样。
至于Vector向量这个呢。他也是通过数组来实现的。与ArrayList的不同就在Vector是线程安全的~~
他们之间也有相似的地方,例如你遍历他们输出的顺序,都是与他们的添加顺序是一样的。他们也都是有序可以重复的。
接下来总结一下HashSet和TreeSet。
package listTest; import java.util.HashSet; import java.util.Iterator; import java.util.TreeSet; public class Set { public static void main(String[] args) { System.out.println("HashSet测试:"); hashSetTest(); System.out.println("\n" + "TreeSet测试:"); treeSetTest(); } /* * HashSet */ public static void hashSetTest() { HashSet<Object> hashSet = new HashSet<Object>(); hashSet.add(3); hashSet.add(2); hashSet.add(1); hashSet.add(3); hashSet.add("a"); hashSet.add("bcd"); hashSet.add(4); System.out.println(hashSet); // 构建一个迭代器 Iterator<Object> iterator = hashSet.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } } /* * TreeSet */ public static void treeSetTest() { TreeSet<Object> treeSet = new TreeSet<Object>(); treeSet.add(3); treeSet.add(2); treeSet.add(1); treeSet.add(3); // treeSet.add("a"); // treeSet.add("bcd"); treeSet.add(4); System.out.println(treeSet); // 构建一个迭代器 Iterator<Object> iterator = treeSet.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } } }
这个HashSet和TreeSet都是无序不可重复的。这里所说的无序指的是无论你的添加顺序如何,他最后通过迭代器输出的结果的顺序都是一样的。 如果添加进去同样的数据,则只会保留一个。
Set遍历输出的方法也不只限于使用迭代器。也可以直接通过System.out.println(set);来输出。
关于这几个集合框架,我平时使用的较多的就是ArrayList,可能也是水平有限所做的应用有限所以用不到那些比较高端的。可能对它们的理解也不是很透彻,有不足的地方还多望大神们指出!~谢谢~
相关推荐
最后,笔记可能会涵盖一些实用的Java库,如集合框架(ArrayList、LinkedList、HashMap等)、IO库和JDBC(Java Database Connectivity)用于数据库交互。 总的来说,"良葛格的Java学习笔记"是一个全面而详尽的入门...
5. **集合框架**:JAVA集合框架是存放和操作对象的容器,包括List、Set、Map等接口以及ArrayList、HashSet、HashMap等实现类。学习笔记会详细介绍它们的使用场景和操作方法。 6. **IO流**:JAVA的输入/输出流系统...
Java集合框架是Java SE API的一个核心部分,它提供了一种有效地存储、管理和处理对象的方式。集合框架包括接口(如List、Set、Map)和实现这些接口的类(如ArrayList、HashSet、HashMap)。这些接口定义了操作集合的...
这份“java基础——————试题库”资源旨在帮助学习者系统地复习和深入理解Java的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...
Amino框架是Java并发编程领域的一个工具,它旨在简化并发编程,提高程序的性能和可维护性。这篇博客文章可能详细探讨了Amino框架的设计理念、核心功能以及如何在实际项目中应用。 Amino框架可能提供了以下一些关键...
5. 集合框架:ArrayList、LinkedList、HashMap等是Java集合框架的一部分,它们用于存储和管理对象。在Bank项目中,可以使用集合来存储多个账户或客户信息,便于管理和查找。 6. IO流:Java的IO流用于读写数据。在...
- **迭代器原理**:迭代器(Iterator)接口是Java集合框架的一部分,用于遍历集合中的元素。它提供了一系列方法,如`hasNext()`、`next()`等,以实现对集合的遍历。 - **异常的嵌套**:在处理异常时,可以使用嵌套...
Java全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个...
文件名"Java 大学实用教程"暗示了课程可能包含实用的编程示例,如文件I/O操作、多线程编程、集合框架的使用(如ArrayList、LinkedList、HashMap等)以及网络编程。理解如何读写文件、如何实现多线程并行执行以及如何...
同时,深入理解Java内存模型、垃圾回收机制、线程并发编程、异常处理、集合框架(List、Set、Map等)以及IO流等核心特性也至关重要。 Oracle是广泛使用的数据库系统,Java开发人员需要熟悉SQL语句的编写,包括...
在"javaSSH框架——学生学籍管理系统"中,我们可以看到一个典型的SSH框架应用,主要用于实现学生学籍的管理。 一、设计目的 该设计旨在让学生通过实际操作加深对J2EE框架技术的理解,特别是在Struts2、Spring和...
Java编程语言作为全球最受欢迎的开发语言之一,其面试题库广泛且深入,涵盖了基础语法、面向对象、集合框架、多线程、网络编程、I/O流、数据库操作、设计模式等多个方面。这份资源显然为准备Java面试的程序员提供了...
Java集合框架源码解读(1)——ArrayList、LinkedList和Vector Java集合框架源码解读(2)——HashMap Java集合框架源码解读(3)——LinkedHashMap Java集合框架源码解读(4)——WeakHashMap Java集合框架源码解读
Java API包括类库、接口和异常等,如集合框架(java.util包),I/O流(java.io包),网络编程(java.net包)等。Java API是通过JAR文件分发的,开发者通过import关键字引入所需类。理解Java API需要掌握面向对象编程...
3. **集合框架**:Java集合框架如`ArrayList`, `HashSet`, `HashMap`等在日程管理中发挥着核心作用,用于存储和管理多个日程项。例如,`HashMap`可以用来存储事件ID与事件详情的映射关系,便于快速查找和更新。 4. ...
集合框架的使用极大地提高了代码的可维护性和复用性,而多线程编程则让Java能够充分利用多核处理器的优势,实现高效的并发执行。 对于开发工具,JDK 6提供了强大的JConsole,用于监控Java应用的性能和资源使用情况...
6. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等容器的使用,以及泛型的概念。 7. **异常处理**:理解何时抛出异常,如何捕获和处理异常,以及try-catch-finally语句块的使用。 8. **输入/输出流**:...
【描述】"java毕业设计"表明此项目主要使用Java技术栈,通常这样的设计会涵盖Java的基础知识,如面向对象编程、异常处理、IO流、集合框架等,并可能涉及数据库交互、GUI界面设计等方面。通过这样的实践,学生可以...