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全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个...
Java集合框架源码解读(1)——ArrayList、LinkedList和Vector Java集合框架源码解读(2)——HashMap Java集合框架源码解读(3)——LinkedHashMap Java集合框架源码解读(4)——WeakHashMap Java集合框架源码解读
NULL 博文链接:https://m635674608.iteye.com/blog/2216723
第5章对编码能力提升,包括异常处理、输入输出、集合框架、正则表达式、枚举类型和Annotation。异常处理,对程序中可能出现的异常情况进行处理;输入输出,对输入输出流和文件操作进行介绍;集合框架,介绍泛型与...
java面试笔试资料Java经典项目集锦java笔试题大集合及答案题库java笔试题汇总资料个合集(188) 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring...
java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx ...
含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,
java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB“ 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx 8张...
了整个 OOP 的框架。这三个概念是:封装、继承性和多态性。除此以外,还需了解对象、 类、消息、接口、及抽象等概念。 2.2.1 对象 现实世界中的对象具两个特征:状态和行为。例如:自行车有状态(传动装置、...
java面试笔试题库java学习比较开发教程互联网公司面试资料大全合集: 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx 8张图解...
Java实训项目,综合面向对象、I/O、实用类、集合框架等知识点
Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...
Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...
畅销书作家Herbert Schildt在本书中详尽地讲解了Java语言,包括Java的语法、关键字和基本编程原则,以及Java API库的主要内容,如I/O、集合框架、流库或并发实用程序。另外,《Java 9编程参考官方大全(第10版)》还...
关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...
下面是本卷详细介绍的主要内容: Java语言基础知识面向对象程序设计接口与内部类事件监听器模型 Swing图形用户界面程序设计打包应用程序异常处理登陆与调试泛型化程序设计集合框架多线程... 【作译者介绍】 本书提供...
Java迭代器(Iterator)是 Java 集合框架中的一种机制,是一种用于遍历集合(如列表、集合和映射等)的接口。 它提供了一种统一的方式来访问集合中的元素,而不需要了解底层集合的具体实现细节。 Java Iterator...
JAVA的基本语法 第2章 对象无处不在——面向对象的基本概念 第3章 当一个变成多个——集合框架的基本概念 第4章 数据传送的管道——JAVAcI/O 第5章 如何走得更稳——测试驱动的基本概念 6章 三头六臂——线程和同步...
JAVA学习笔记第十四天——字符集编码解码、泛型的使用、数据结构栈和链表、集合框架&List,示例代码,里面主要是知识点的具体使用和各种现象。