java-集合类
程序员文章站
2024-01-04 21:48:52
1,set 不重复,升序2,list可重复,升序2.1 list转数组 List list = new ArrayList(); Obect [] o = list.toArray();2.2 数组转listObject [] o= new Object[8];Arrays.asList(o);3,map ,key不可重复,value可重复4,IteratorhasNext()是否有下一个元素next()移向下一个元素remove()有的集合不支持,如 Arra......
1,set 不重复,升序
2,list可重复,升序
2.1 list转数组
List list = new ArrayList();
Obect [] o = list.toArray();
2.2 数组转list
Object [] o= new Object[8];
Arrays.asList(o);
3,map ,key不可重复,value可重复
4,Iterator
hasNext()是否有下一个元素
next()移向下一个元素
remove()有的集合不支持,如 Arrays.asList(o)转换得到的list不支持remove
5,Collections
Collections.sort(List list);排序 集合中的元素需要实现comparable接口,实现compareTo()函数,大于返回1,小于返回-1,等于返回0,与Arrays.sort()一样,
Collections.sort(List list,Comparator c);list:集合 c:比较器, 比较器需要实现Comparator接口,重写compare(Object o1,Object o2)函数. 比较o1和o2 ,大于返回1,小于返回-1,等于返回0
Collections.binarySearch() ,被查询的集合需要已排序.
6,linkedList
6.1 LinkedList是采用双向循环链表实现的
6.2 利用LinkedList实现栈(stack),队列(queue),双向队列(double-ended-queue)
7,HashSet
7.1 hashSet依靠hashMap实现的
从对象的hashCode()函数获取散列码,作为对象在集合中的地址,
hashCode()函数是通过对象的内存地址得到散列码,每个new对象的内存地址不同,
要想去重需要重写对象的hashCode()函数和equals,hashset会先调用hashcode函数判断是否相等,如果相等就会再调用equals函数判断.
8,treeSet
8.1 treeSet依靠treeMap来实现的
8.2treeSet是一个有序集合,默认升序排序,排序规则是自然序,可以在创建treeSet时传入自定义的比较器.compareable
8.3 hashSet性能优于treeSet,一般用hashSet,除非需要排序才用treeSet
9,HashMap
10,TreeMap 用法与HashMap类似
11 Vector 是同步的,速度慢,用ArrayList代替,需要List线程安全可以使用Collections 的synchronizeList(List list)返回一个线程安全的List,map也可以这样返回
12 HashTable用HashMap代替,用synchronizeMap(Map map)返回一个同步的Map
13Stack ,存在潜在问题
14,Properties
14.1基于HashTable实现
14.2 用于保存字符串的集合,<String,String>
System.getProperties()返回系统的参数
本文地址:https://blog.csdn.net/voidL123/article/details/107372537