时间:2021-05-20
初学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 style="white-space:pre"> </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; }}以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java集合包Java集合主体内容包括Collection集合和Map类;而Collection集合又可以划分为List(队列)和Set(集合)。1.List的
详解Java中list,set,map的遍历与增强for循环Java集合类可分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作
java有三种集合,包括Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。 1、Set中的对象
foreach语句中,collection属性的参数类型可以使:List、数组、map集合collection:必须跟mapper.java中@Param标签指
java中实现list或set转map的方法在开发中我们有时需要将list或set转换为map(比如对象属性中的唯一键作为map的key,对象作为map的val