Java中Collection、List、Set、Map之间的关系总结
今天小编就为大家分享一篇关于Java中Collection、List、Set、Map之间的关系总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧初学java,单个的接触有点迷糊,所以总结下他们的关系
一、关系
collection
--list:以特定顺序存储
--arraylist、linklist、vector
--set:不能包含重复的元素
--hashset、treeset
map
--hashmap、hashtable、treemap
二、分别讲解
collection:collection是一个父接口,list和set是继承自他的子接口,collection是最基本的集合接口,java sdk中不提供直接继承自collection的类,而是提供继承自他子接口的类,如list何set。所用的collection类都支持一个iterator()方法来遍历。
list:list接口是有序的,会精确的将元素插入到指定的位置,和下面的set接口不同,list接口允许有相同元素
arraylist:实现可变大小的数组,允许所有的元素,不是同步的,也就是没有同步方法
linklist:允许null元素,通常在首部或者尾部操作,所以常被使用做堆栈(stack)、队列(queue)和双向队列(deque)
vector:类似于arraylist,但vector是同步的,stack继承自vector
set:是一种不包含重复元素的collection接口
hashset:不能有重复元素,底层是使用hashmap来实现的
map:此接口实现的key到value的映射,一个map中不能包含相同的key,每个key只能映射一个value
hashtable:实现了一个key-value的哈希表,每一个非null元素都可作为key或者value,hashtable是同步的
hashmap:和hashtable的不同之处是,非同步的,且允许null元素的存在
三、array和arrays collection和collections
array:是所以随机访问一串对象中,最有效率的一种,但是元素类型必须相同,且容量固定无法改变。
arrays:此静态类专门操作array,提供搜索、排序、复制等静态方法
collection:java.util下的一个接口,是各种集合结构的父接口
collections:java.util下的一个专用静态类,他包含各种集合操作的静态方法,包括对集合的搜索、排序、线程安全等操作。
四、总结
涉及到堆栈、队列等操作,使用list接口,快速插入和删除应使用linklist,随机访问元素使用arraylist
单线程使用非同步类,多线程使用同步类
注意对hashtable的操作,作为key的对象要覆写equals和hashcode方法
在各种map中hashmap用于快速查找
最长使用的是arraylist、hashset、hashmap、array
下面是一个找出元素字符串数组中最长字符串的例子
package collection;
import java.util.arrays;
import java.util.collections;
import java.util.comparator;
import java.util.list;
public class masstring {
public static void main(string args []){
string str[] = new string[]{"zhans", "lis", "wangwt", "quliu"};
list<string> list = arrays.aslist(str);
string max = collections.max(list, new strsort()); // collections静态函数的使用
system.out.println("max: "+max);
}
}
class strsort implements comparator<string>{
<span> </span>// 一个比较器重新定义
public int compare(string s1, string s2){
if(s1.length() < s2.length()){
return -1;
}
if(s1.length() < s2.length()){
return s1.compareto(s2);
}
else return 1;
}
}
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对CodeAE代码之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/jinhuoxingkong/article/details/51225641
http://www.zzvips.com/article/177104.html
页:
[1]