集合(Set、List、Map)框架知识整理

原创 2018年04月16日 11:09:45

java中集合是一系列泛型类,可用于创建集合类,以支持多种存储与管理对象。

集合里的接口和类都来自于 java.util.*包

主要分为:Collection(Set/List/Queue) 和 Map

集合分为:集(Set),序列(List),地图(Map)、队列(Queue)


一、集(Set):无序的/不允许存在重复元素

实现类:

Set<T> set =new HashSet<T>();

HashSet:基于 散列表 实现

常用方法:

①操作元素:

add(Object element):向Set中添加一个元素。

remove(Object element):删除Set中的指定对象。

clear():清空Set集合。

②判断元素:

isEmpty():判断Set中是否为空。返回 bollean 值。

contains(Object element):判断Set中是否含有 指定 元素。返回 bollean 值。

③其他

iterator():迭代器。对Set中的元素进行遍历

size();返回Set的元素个数。

//实例化
		Set<String> set=new HashSet<String>();
		set.add("1111");
		set.add("2222");
		set.add("3333");
		
		//方法1:迭代器遍历
		Iterator<String> it=set.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
		//方法2:增强for循环遍历
		for(String str:set){
			System.out.println(str);
		}

二、序列(List):有序的/可存在重复值/长度可变

实现类:

List<T> list=new ArrayList<T>();

ArrayList:基于 动态数组 实现。

List<T> list=new LinkedList<T>();

LinkedList:基于 链表 实现。(ps:占用内存较大,但是批量处理插入删除操作的时候有优势)。

ps:虽说是有序的,但其实list采用的线性存储,没有特定的顺序,只是有固定的头尾序列。

常用方法:

①操作元素:

get(int index): 得到指定位置的数据。

set(int index,Object element):对指定位置,赋值。

add(Object element):在List的尾部增加一个元素。

add(int index,Object element):在List的指定位置放置一个元素。

addAll(Collection coll):在List中批量的添加一个新的集合。

addAll(int index,Collection coll):在List的指定位置添加一个新的集合。

remove(int index):删除指定位置的元素。

remove(Object element):删除指定值的元素。

clear();清空List

②判断元素:

isEmpty():判断List是否为空。

contains(Object element):判断List中是否包含 指定 元素

③查询元素:

indexOf(Object o):从前向后 查找List集合,返回第一次出现该元素的index。如果无,则返回-1。

lastIndexOf(Object o):从后向前 查找List集合,返回第一次出现该元素的index。如果无,则返回-1。

④其他方法:

iterator():迭代器

size():返回List中的元素个数。

subList(int fromIndex,int toIndex):返回集合中 fromIndex(包括) 到 toIndex(不包括) 之间的数据。

//实例化
		List<String> list=new ArrayList<String>();
		list.add("1111");
		list.add("2222");
		list.add("3333");
		
		//方法1:迭代器遍历
		Iterator<String> it=list.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
		//方法2:for循环遍历(有头有尾的有序性)
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		//方法3:增强for循环遍历
		for(String str:list){
			System.out.println(str);
		}

三、地图/字典(Map): 有序的/长度可以动态改变/key值不能重复/无迭代方法

Map集合由 Key(键)集合 和 Value(值) 集合构成(即键值对)。

其中Key(键)集合本质是Set集合,所以不允许重复。

而Value(值)集合是一个Collection类。

实现类:

Map<K,V> map=new HashMap<K,V>();

HashMap:基于 散列表 实现

常用方法:

①操作元素:

get(Object key):返回指定Key值对应的Value值,若无则返回null。

put(Object ket,Object value):向Map中添加指定的新key-value值

putAll(Map<? extends K, ? extends V> m):向指定的Map中再插入一个新的Map集合。

remove(Object key):移除指定Key的键值对。

clear():清空Map。

②判断元素:

isEmpty():判断Map集合是否为空,返回boolean值。

containsKey(Object key):判断指定的Key值是否存在。返回boolean值。

containsValue(Object value):判断指定的Value值是否存在。返回Value值。

③查看集合:

keySey():返回所有键值对的Key集合

values():返回所有键值对的Value集合

size():返回Map中的 键值对 个数。

④遍历:

entrySet():讲Map中的键值对打包成一个对象( Set<Map<K,V>>)

Map.entry.getKey():根据Map.entry对象获取Key值

Map.entry.getValue():根据Map.entry对象获取Value值

//实例化
		Map<String,Integer> map=new HashMap<String,Integer>();
		map.put("id",12313);
		map.put("card", 1423412);
		map.put("num", 55756756);
		
		//增强for循环遍历
		for(Map.Entry<String, Integer> entry:map.entrySet()){
			System.out.println(entry.getKey()+entry.getValue());
		}

PS:Map以键值对的方式进行存储,且不是Iterator接口的实例化类,所以无法进行迭代器进行遍历;


java集合与排序详解

  • 2011年03月03日 18:01
  • 586KB
  • 下载

JAVA集合框架之List、Map、Set之间的选择~小案例分析

案例分析 案例介绍:简易扑克牌游戏。 集合(list、set、map)的选择 既然要比较,我们还是先从JAVA集合的祖先来介绍。...
  • qq_23473123
  • qq_23473123
  • 2016-04-28 16:28:10
  • 1708

map、list、set等常见集合的理解

简言:java中我们经常会使用到集合,比如hashmap、hashtable、arraylist、以及hashset等,还有几个比较少见的如(vector、treeset)等。其实这些都是基于list...
  • u013825231
  • u013825231
  • 2016-07-25 20:44:28
  • 858

常用JAVA集合框架(Collection、List、Set、Map)

1.常用集合框架结构 2. List   2.1 ArrayList List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List ...
  • sdauzxl
  • sdauzxl
  • 2016-07-29 20:17:18
  • 2523

map set list三种集合之间的关系及各自的特点

今天给大家带来的是三种常用集合各自的性能分析,这里只是浅谈,就不深入讲解底层了。 在这里先上关系图: 一,Conllection: 接下来先看一下Collection接口: 他...
  • qq_35681180
  • qq_35681180
  • 2016-11-28 18:01:54
  • 2500

java中三大集合类Map,Set,List的详细介绍

在讲Map,Set,List三大接口之前,我们先来了解下Set和List的父类接口Collection接口   一:Collection接口:是java.util包下的一个接口: 其...
  • qq_27028821
  • qq_27028821
  • 2016-08-20 17:57:01
  • 1613

java 常用集合list与Set、Map区别及适用场景总结

list与Set、Map区别及适用场景
  • qq_22118507
  • qq_22118507
  • 2016-06-03 09:51:42
  • 68123

Java集合三种类型:Set<集>、List<列表>、Map<映射>

1、Set 存放的是对象的引用,没有重复的对象。     ①:HashSet:按照哈希算法来存取集合中的对象,存取速度比较快。     ②:TreeSet:TreeSet类实现了SortedSet...
  • Simon_YDS
  • Simon_YDS
  • 2016-12-09 10:50:32
  • 1379

集合框架概念整理

根据老师上课的讲解及自己课下看的视频总结了一下基本概念。 1.在集合框架产生之前处理对象组的方法: (1)数组的特点 一维数组:线性的 、长度固定的 、有下标、内存地址连续的[读取速度快] 二...
  • weixin_35780163
  • weixin_35780163
  • 2017-04-10 14:25:32
  • 116

JAVA中几种集合(List、Set和Map)的区别

Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置...
  • taxuefangmei
  • taxuefangmei
  • 2015-07-03 10:01:16
  • 3722
收藏助手
不良信息举报
您举报文章:集合(Set、List、Map)框架知识整理
举报原因:
原因补充:

(最多只允许输入30个字)