集合类
为什么会出现集合类?
面向对象语言对事物的体现就是以对象的形式,所以为了方便对多个对象的操作,就要对对象进行存储,集合就是存储对象的最常用的一种方式。
数组和集合为什么不同?
数组虽然也可以存储对象,但长度是固定的,集合的长度是可以变的,数组中可以存储基本数据类型,但集合只能存储对象。
---List
List 特点是存入对象是有序的,即存入什么顺序,取出来就会是什么顺序。而且里面的元素是可以重复的。
List按照其底层数据存储形式可以分为ArrayList和LinkedList。前者是以级数为存储方式后者以链表为存储方式,显示前者
适合检索遍历,后者适合增加删除。
---Set
Set的特点是不包含重复元素,而且是无序的。
HashSet是底层使用哈稀表为存储方式实现的Set集合。HashSet给存入的每个对象计算出一个Hash值,然后映射出一个存储地
址。这样很容易判断出某个对象是否已经存在。试想如果用ArrayList保证对象重复会有多么麻烦。假如集合中有1万个对象,当添加
10001个对象时,需要进行10000次比较才能最后确定这个对象是否已经存在,如果存在,就不加入,如果不存在就添加进去。由
此可见HashSet在这方面的优越性。当我们的对象需要存储到HashSet中时,通常我们需要重写hashCode方法和equals方法,以
我自己的规则判断两个对象是否相等。比如,在某种特定的情况下,我们可以设定姓名和年龄都相等的两个人就是同一个人。
HashSet是非线程同步的!
TreeSet 该集合可以对Set集合中的元素进行排序,底层是使用二叉树作为数据结构。排序性能比较高!
排序的两种实现方式:
1、元素需要实现Comparable接口,覆盖compareTo方法,这种方式也称为元素的自然顺序,或默认顺序。
2、让集合具备排序能力。在创建集合的时候传入一个自定义比较器,自定义比较器要实现Comparator接口。这样就使得添加元素时集合
都会按照比较器里的要求将每次添加进的元素放到适当的位置,也就是实现的排序。
三、Map
Map是一种与Collection不同的集合,是以key/value的形式存在的。通过key找到对应的value,key就像身份证号一样需要唯一确定。
HashTable 底层是Hash表数据结构,不可以存入null作为键和null作为值的情况。Hashtable是线程同步的。jdk1.0 开始 效率低
HashMap 底导是hash表数据结构, 并允许使用null作为键和null作为值,不是线程同步的。jdk1.2开始 效率高
TreeMap 底层是二叉树作为数据结构,线程不同步,可以用于map集合中的按键排序
Set和Map很像,其实Set底层使用了Map集合
Map集合的取出原理:将map集合取出原理,将map集合转成Set集合,再通过迭代器取出。记住keySet和EntrySet方法的使用!
Map的应用-------------利用Properties类读取配置文件(框架中经常用到)
InputStream in = ReflectCollections.class.getResourceAsStream("config.properties");
Properties prop = new Properties();
prop.load(in);
分享到:
相关推荐
java基础,集合类基础,自己总结的笔记。
java零基础自学之 Java 集合类 java零基础自学之 Java集合类
NULL 博文链接:https://andelu.iteye.com/blog/1260288
JAVA基础集合类学习.md
java集合类
JAVA核心知识点整理,涵盖JAVA基础、集合类、JVM、IO/NIO、多线程、Spring原理等知识。
Java基础之常用类集合,异常、IO文件等基础使用
自己收集的java编程笔记,关于集合类的知识,很有用
JAVA经典题库,Java经典习题,java基础题型
java 基础中的集合分类 list 、set、map, 及其各自所有的特点, 使用xmind 列举出来。
java集合基础习题及答案,
Java基础入门教程 Java编程技术10 集合框架(略)(共48页).ppt Java基础入门教程 Java编程技术11 Java IO(2学时)(共30页).ppt Java基础入门教程 Java编程技术12 网络编程(2学时)(共20页).ppt Java基础入门教程 ...
该文档主要详细总结了Java集合的相关知识,包括Collection和Map接口、Collection接口的子接口List和Set接口以及具体的实现类、存储原理等;Map接口的子接口HashMap、LinkedHashMap、TreeMap、Properties等
Java集合类 面试题 Java基础
Java基础入门教程 第6章 集合框架(共28页).ppt Java基础入门教程 第7章 Java中的异常处理(共26页).ppt Java基础入门教程 第8章 文件流的输入输出操作(共37页).ppt Java基础入门教程 第9章 Java的高级特性(共...
完整版 Java基础入门教程 Java程序语言设计 03 java对象 集合框架(共18页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 java对象 类和对象1(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 ...
Java基础入门教程 第6章 集合框架(共28页).ppt Java基础入门教程 第7章 Java中的异常处理(共26页).ppt Java基础入门教程 第8章 文件流的输入输出操作(共37页).ppt Java基础入门教程 第9章 Java的高级特性(共...
Java基础 Java集合.pptx Java基础反射pptx Java基础 多线程.pptx Java基础 异常处理pptx Java基础 枚举&注解pptx Java基础泛型docx Java基础_网络编程pptx Java基础面向对象pptx Java基础_高级类特性.pptx Java基础...
完整版精品java课件 Java基础入门教程 Java程序设计 第4章 类和对象(共57页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第5章 继承和接口(共47页).ppt 完整版精品java课件 Java基础入门教程 Java...
二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 20 四、 面向对象★★★★★ 21 五、 封装(面向对象特征之一)★...