map set简介

Set集合的特点:
不允许出现重复元素;
集合中的元素位置无顺序;
有且只有一个值为null的元素
Set集合分为HashSet和TreeSet。一般我们所说的Set集合指的是HashSet;

****HashSet常用方法**:**
	         set.add(1); 添加元素
	    	System.out.println("set长度:"+set.size());
	         set.clear(); 移除所有元素
	    	 set.isEmpty() 是否为空
		     set.remove("1");清除某元素

			 while (iterator.hasNext()) {
				    System.out.println(iterator.next());		
			  }

TreeSet:
TreeSet是非线程安全的。
是一个有序的,没有重复元素"的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象 类,
TreeSet是非同步的
支持add、remove、get等方法。
和NavigableSet一样,TreeSet的导航方法大致可以区分为两类,一类时提供元素项的导航方法,返回某个元素;另一类时提供集合的导航方法,返回某个集合。
通过for-each遍历TreeSet。不推荐,
使用 迭代器循环


  1. hashCode 哈希码

  2. HashSet不存入重复元素的规则。使用hashcode()和equals().

  3. 对象加入HashSet时,HashSet会使用对象的hashCode来判断对象加入的位置。
    同时也会与其他已经加入的对象的hashCode进行比较,如果没有相等的hashCode,HashSet就会假设对象没有重复出 现。

  4. 如果元素(对象)的hashCode值相同,是不是就无法存入HashSet中了? 当然不是,会继续使用equals 进行比较.如果
    equals 为true 那么HashSet认为新加入的对象重复了,所以加入失败。
    如果equals 为false那么HashSet 认为新加入的对象没有重复.新元素可以存入。

  5. 添加的元素要实现equals方法和hashCode方法,equals用于比较是否添加,hashCode 用于计算是hash值


1. Map提供一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value;
  
2 Map中键值对以Entry类型的对象实例形式存在;

3 键,即key不可重复,但是value值可以;

4 每个键最多只能映射一个值;

5 Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法;

6 Map支持泛型,形式如:Map<K,V>
  
7. Map集合有HashMap, HashTable, LinkedHashMap等集合。一般指的是HashMap。

           HashTable:哈希表有关     
  
          LinkedHashMap:
		          有序的,非线程安全
		           链表
		          Key和Value都允许空,Key重复会覆盖、Value允许重复
		

          HashMap:
		      HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;
		   HashMap中的Entry对象是无序排列的;
		   Key值和Value值都可以为null,但是HashMap中只能有一个Key值为null(key值不可重复);

	           Map map=new  HashMap ();
			           map.put(1, "java");-----------------------添加map集合
		               map.put(2,"js");
			           map.put(3, "html"); 
				  
		     Map map2=new  HashMap ();
					map.put(4, "java");
					map.put(5,"iq");
					map.put(3, "html");
			
	                map.putAll(map2);  将map2集合添加到map集合中 /*如果map2的key和map1的一样,map2就会覆盖map1的值*/   
	                map.clear()	    //删除所有的元素(映射)
	
	                map.remove(key)    //移除某个元素(映射)key
	                
	                System.out.println(map.get(2));---------获取key为2的元素
			
					Set  set2=  map.entrySet();  
					System.out.println(set2);----------------将map集合转换为set集合,格式k,v  1=java, 2=js, 3=html  
			
					System.out.println(map.keySet()); ---------将map集合中的key转换为set集合,
			
					System.out.println(map.values()); --------------将map集合中的value转换为set集合,
			
					System.out.println(map.containsKey(1)); ------------------是否含有某一个key
			
					System.out.println(map.containsValue("java"));--------------是否含有某一个Value
			
					System.out.println(map.isEmpty()); ---------------//是否为空

禁止抄袭,违者必究。

文章如发现错误,请指出虚心接受请教

如想使用,文章加上网址和原创作者。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值