码迷,mamicode.com
首页 > 编程语言 > 详细

【javaSE】HashSet和HashMap

时间:2015-03-14 12:29:35      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:hashset   hashmap   

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************

SET集合

set集合存放不重复的元素,set集合中不存在equal值为ture的元素;hashSetTreeSetset接口的常用两个实现类,分别用hash算法和排序二叉树算法来实现;例如,将100以内不重复的随机20个数写入set集合

         Set<Interger> hashset=new HashSet<Integer>();

         Random r =new Random();

         while(hashset.size()<10){

         hashset.add(r.nextInt(100));

}

set集合不同于List对象,元素不和下标进行对应,无法从Set集合中取出特定的元素,但是可以遍历整个Set集合,方式是通过iterator遍历方法,返回Iterator遍历对象;

也可以是增强型For循环,在java编译器中是等价的;

例如:

         Set<String> strset = new HashSet<String>;

         strset.add(“adb”);strset.add(“che”);

增强型for循环

         for(String str: strset){

                   system.out.println(str)

}

         迭代器为:

                   Iterator It =strset.iterator();

                   while(It.hasNext()){

                            String str=It.next();

                            system.out.println(str)

}

6.1 HashSetHashCode

         HashSet的实现通过Hash表实现的:

         添加对象到HashSet的过程:

         元素——取出元素的hashcode---通过Hash算法——索引到相应的存储空间;

         HashSetcontains方法实现:

         参数对象的hashcode值找到相应的存储空间,然后和该空间的对象进行equal比较;

 

         hashCode方法,与equals方法的一致性;一般使用IDE工具生成hashCode算法;

map集合

map集合定义了查找表,即所谓的“value””key”映射对,key可以看出value的索引,作为KeyValue在集合中不能重复;

         map接口的实现类常用的有hash表实现的HashMap,排序二叉树的TreeMap;

         map接口的常用方法有getset:

         Object put(K key, Object value);作用将Key_value映射对写入到Map中,如果集合中已经包含该Key,则返回Key映射的原理的Value值;如果没有则返回null

         V get(K key);返回K值映射的value;

7.1 Map的常用方法

         Boolean containsKey(Object key);判断map中是否包含Key的索引;

         Boolean containsValue(object value);判断map中是否包含value的值;

         例如:

                   创建数组:

                   String str=”123,321,124,421,125,521”;

                   String[] arr=str.split(“”)

                   创建Map对象

                   Map<String,integer> map=new HashMap<String,integer>();

                   统计字符出现的次数:str作为Key,出现次数作为Value;需要遍历字符数组,检查集合中是否包括Key值,来判断出现的次数;

                   for(i=0;i<arr.length;i++){

                            if(map.containsValue(arr[i]))

                            {/**put方法替换,value + 1key不变*/

         map.put(arr[i],map.get(arr[i]) + 1);

}else{

/**初始数值*/

map.add(arr[i],1)

}

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************

【javaSE】HashSet和HashMap

标签:hashset   hashmap   

原文地址:http://blog.csdn.net/clark_xu/article/details/44258263

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!