map set简介

  • Post author:
  • Post category:其他



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()); ---------------//是否为空



禁止抄袭,违者必究。



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



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




版权声明:本文为qq_43435845原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。