java的集合
来源:互联网 发布:网络ip地址设置 编辑:程序博客网 时间:2024/06/05 04:28
存储方式称为:数据结构。
堆栈:先进后出。(如同杯子)
队列:先进先出。(如同管子)
Collection
|---->List:元素师有序的,元素可以重复。因为该集合体现有索引。
|---->ArrayLIst:底层的数据结构使用的是数组结构。特点:查询速度很快,但是增删稍慢。线程不同步
|---->LinkedLIst:底层使用的链表数据结构。特点:增删速度快,查询稍慢。
|---->Vector:底层是数组数据结构。线程同步,被ArrayList替代了。
|---->Set:元素是无序的,元素不可以重复。
|---->HashSet:底层数据结构式哈希表。
HashSet是如何保证元素唯一性的呢?
如果元素的hashcode值相同,然后判断equals是否为true。
如果元素的hashcode值不同,就会调用equals。
注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和eauals方法
|---->TreeSet:可以对Set集合中的元素进行排序。
底层数据结构是二叉树。保证元素唯一性的依据:compareTo方法Return 0.
TreeSet排序的第一种方式:让元素自身具备比较性。
元素需要实现Comparable接口,覆盖compareTo方法。这称为自然排序或默认排序。
TreeSet的第二种排序方式。当元素自身不具备比较性时,
或者具备的比较性不是所需要的。这时就需要集合自身具备比较性 ,
在集合初始化时,就有了比较方式。
当两种排序都存在时,以比较器为主。
定义一个类,实现Comparator接口,覆盖compare方法。
Map
HashTable:底层是哈希表数据结构,不可以存入null值,线程同步的。效力低
HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步的,效率高
TreeMap:底层是二叉树数据结构,线程不同步,可以使用map集合中的键进行排序。
Collections没有构造方法,里面全是静态方法。可以操作list集合。
方法的可变参数一定要定义在括号的最后一个参数。
静态方法不可以访问类上定义的泛型。
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。
《?》通配符,可以理解为占位符。
泛型的限定:
? extends E:可以接收E类型或者E的子类。上限。
? super E:可以接收E类型或者E的父类型。下限。
泛型限定是用于扩展用的。
TreeSet 案例:
package com.six;import java.util.*;public class TreeSetDemo{/** * @param args */public static void main(String[] args){TreeSet ts = new TreeSet(new StringLengthComparator());ts.add("abc");ts.add("aaa");ts.add("asdf");ts.add("zxcvcv");ts.add("klsjdfkhse");ts.add("aa");for(Iterator iter = ts.iterator();iter.hasNext();){System.out.println(iter.next());}}}class StringLengthComparator implements Comparator{@Overridepublic int compare(Object o1, Object o2){String str1 = (String)o1;String str2 =(String)o2;int num = new Integer(str1.length()).compareTo(new Integer(str2.length()));if(0==num)return str1.compareTo(str2);return num;}}
先实现字母长度排序然后再利用字母排序。
- JAVA 集合 的 集合
- [集合]Java的集合框架 Collection集合
- JAVA集合-集合的遍历
- Java的集合框架
- JAVA集合的认识
- java集合的总结!
- java 对象的集合
- java 当中的集合
- JAVA集合的认识
- Java的集合框架
- java 集合的使用
- java的集合类
- Java的集合对象
- Java集合的数据结构
- Java对象的集合
- Java的集合类
- java的集合
- java的集合对象
- JavaSE 拾遗(8)——JavaSE 集合框架
- 【JAX-WS入门系列】第07章_与Tomcat集成
- 使用jsp和servlet写的一猜数字游戏
- vi/vim 基本使用方法
- 报表导出Excel 一 :根据业务需求设计Excel导出模板
- java的集合
- 如何高效使用搜索引擎 - 善用高级搜索
- vi命令
- 例题 7-2 埃及分数
- 使用Eclipse Memory Analyzer对Tomcat进行内存分析
- Symfony2 教程 - 备忘
- hibernate电子书免费下载
- linux 查询某个目录下的文件中是否有某个字符串
- 解题报告(A,B,C)