Java集合
来源:互联网 发布:怎么把mac照片导入u盘 编辑:程序博客网 时间:2024/05/21 04:02
Collection接口(java.util):
List接口(有序,可重复,查询速度快,插入或删除慢):
LinkedList类
ArrayList类
Vector类
Set接口(无序,不可重复):
HashSet类(无序,不可重复)
TreeSet类(有序(用二叉排序树),不可重复)
Map接口(java.util)[使用key-value来映射存储数据,key必须唯一,value可以重复]:
HashMap类(无序)
TreeMap类(有序(用二叉排序树))
遍历:
Iterator接口(java.util):迭代输出,是使用最多的输出方式
ListIterator接口(java.util):是Iterator的子接口,专门用于输出list中的内容foreach和for循环
ArrayList和LinkedList的区别
LinkedList经常用在增删操作较多,而查询操作较少的情况下,ArrayList则相反用在增删操作较少,查询较多的情况下
HashMap
HashMap是最常用的Map,它根据HashCode值存储数据,根据键可以直接获取它的值,因此访问速度快。HshMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL,是非同步的
Hashtable
LinkedHashMapHashtable与HashMap类似,但它支持线程的同步,所以是线程安全的,Hashtable在写入时比较慢,集成自Dictionary类,不同的是它不允许记录的键或值为null,同时效率较低
LinkedHashMap保存了记录插入的顺序,在用Iterator遍历的时,先得到的记录肯定是先插入的,在遍历的时候会比HashMap慢
TreeMap
TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是是按键值的升序排序(自然排序)
List集合常用方法
Vector和ArrayList
Vector的方法都是同步的(Synchronized),是线程安全的,而ArrayList的方法是不是,由于线程的同步必然要影响性能,因此ArrayList的性能比Vector好。
当Vector或ArrayList超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%大小这样ArrayList就有利于节约内存空间
通过迭代器遍历一个List
Iterator<String> it = l.iterator();while (it.hasNext()) {System.out.println(it.next());}
Collections是一个对集合操作的包装类
public static <T> void sort(List<T> list,Comparator<? super T> c) 根据元素的自然顺序 对指定列表按升序进行排序。
public static <T> int binarySearch(List<? extends T> list, T key,Comparator<? super T> c)使用二分搜索法搜索指定列表,以获得指定对象。
public static void reverse(List<?> list) 反转指定列表中元素的顺序。
public static <T> int binarySearch(List<? extends T> list, T key,Comparator<? super T> c)使用二分搜索法搜索指定列表,以获得指定对象。
public static void reverse(List<?> list) 反转指定列表中元素的顺序。
public static void shuffle(List<?> list) public static void swap(List<?> list,int i,int j) 使用默认随机源对指定列表进行置换
阅读全文
1 0
- Java集合:集合框架
- java集合---set集合
- JAVA 集合 的 集合
- 【集合】Java集合对比
- JAVA集合-Map集合
- JAVA集合-Set集合
- JAVA集合-List集合
- java集合------Map集合
- Java集合----List集合
- Java集合----Set集合
- Java集合----Map集合
- JAVA集合
- JAVA集合
- Java集合
- JAVA集合
- Java集合
- Java集合
- java 集合
- USB Type-C学习点滴
- QNX下启动TF驱动和EMMC驱动的说明
- 一段简短的说明,写给自己看
- unity_NGUI系统学习(二)_Panel组件
- 硬币找零
- Java集合
- 主成分分析详解(包含最大方差理论、协方差、几何意义) Principal components analysis
- TCP和UDP的"保护消息边界" (经典)
- Kafka 详解 + 集群部署
- 欢迎使用CSDN-markdown编辑器
- 软件测试概念
- 由VMware卸载引出CCleaner
- Android中单例模式
- Nginx配置实例