知识大全 Java基础之集合类
Posted 知
篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java基础之集合类相关的知识,希望对你有一定的参考价值。
Java基础之集合类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
为什么会出现集合类? 面向对象语言对事物的体现就是以对象的形式 所以为了方便对多个对象的操作 就要对对象进行存储 集合就是存储对象的最常用的一种方式 数组和集合为什么不同? 数组虽然也可以存储对象 但长度是固定的 集合的长度是可以变的 数组中可以存储基本数据类型 但集合只能存储对象List List 特点是存入对象是有序的 即存入什么顺序 取出来就会是什么顺序 而且里面的元素是可以重复的 List按照其底层数据存储形式可以分为ArrayList和LinkedList 前者是以级数为存储方式后者以链表为存储方式 显示前者适合检索遍历 后者适合增加删除 Set Set的特点是不包含重复元素 而且是无序的 HashSet是底层使用哈稀表为存储方式实现的Set集合 HashSet给存入的每个对象计算出一个Hash值 然后映射出一个存储地址 这样很容易判断出某个对象是否已经存在 试想如果用ArrayList保证对象重复会有多么麻烦 假如集合中有 万个对象 当添加 个对象时 需要进行 次比较才能最后确定这个对象是否已经存在 如果存在 就不加入 如果不存在就添加进去 由此可见HashSet在这方面的优越性 当我们的对象需要存储到HashSet中时 通常我们需要重写hashCode方法和equals方法 以我自己的规则判断两个对象是否相等 比如 在某种特定的情况下 我们可以设定姓名和年龄都相等的两个人就是同一个人 HashSet是非线程同步的! TreeSet 该集合可以对Set集合中的元素进行排序 底层是使用二叉树作为数据结构 排序性能比较高! 排序的两种实现方式 元素需要实现Comparable接口 覆蓋pareTo方法 这种方式也称为元素的自然顺序 或默认顺序 让集合具备排序能力 在创建集合的时候传入一个自定义比较器 自定义比较器要实现Comparator接口 这样就使得添加元素时集合都会按照比较器里的要求将每次添加进的元素放到适当的位置 也就是实现的排序 Map Map是一种与Collection不同的集合 是以key/value的形式存在的 通过key找到对应的value key就像身份证号一样需要唯一确定 HashTable 底层是Hash表数据结构 不可以存入null作为键和null作为值的情况 Hashtable是线程同步的 jdk 开始效率低 HashMap 底导是hash表数据结构 并允许使用null作为键和null作为值 不是线程同步的 jdk 开始 效率高 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) cha138/Article/program/Java/hx/201311/25821
相关参考
java源码分析之HashMap 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Java集合类
实用的Java反射工具类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 反射的Utils函数集合
知识大全 Java网络编程基础(四) ServerSocket类使用
Java网络编程基础(四)ServerSocket类使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
java多线程之wait()notify()notifyAll() wait()notify()notifyAll()不属于Thread类而是属于Object基础类也就是说每个对像都有wait(
Java多线程编程基础之线程对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
知识大全 Java多线程系列--“JUC原子类”05之 AtomicLongFieldUpdater原子类
Java多线程系列--“JUC原子类”05之AtomicLongFieldUpdater原子类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整
关于包的祥解: 概念: 包(Package)是Java编程的基础包蕴涵于标准类的体系结构和用户自己的程序中包是有唯一命名 的类的集合 给自己的类打包: 在打包之前我们最好先定义一
实战体会Java多线程编程精要之基础 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
Java套接字实现网络编程之基础篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用Java开发网络
作者印佛西地 包(package)的基本概念 一旦你创建了一个类并想重复地使用它那么把它放在一个包中将是非常有效的包(package)是一组类的集合例如Java本身提供了许多包如javajo