`
代码小达人
  • 浏览: 23156 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

java队列以及hashset hashmapd总结

 
阅读更多
队列以及hashset hashmapd总结
队列是有序的,但是hashset和hashmap都是不保证其有序的,hashset相当于一个集合,hashmap则是一个映射。Hashset要存的数据若在hashset里面已经存在的话,则不会被存进去了,但是hashmap却不一样,若关键字相同,还是会存进去,即原来的映射被新的调换了。因此其关键字所对应的value可以改变。
Hashset可以用来除去数组或者队列中的相同元素,使之不会重复。Hashmap可以利用关键字来改变其相对应的value的值。
相关练习题
1.给定任意int一维数组
  a.去掉数组中的重复元素
  b.给数组排序

public class ArrayList<E> {
	public static void main(String[] args) {
		// 创建任意一维数组
		int a[] = { 2, 4, 6, 3, 8, 2, 6, 9, 0, 7 };
		ArrayList<Integer> array = new ArrayList<Integer>();
		int b[] = array.change(a);
		for(int i=0;i<b.length;i++){
			System.out.println(b[i]);
		}

	}

	public int[] change(int a[]) {
		// 创建1个队列
		java.util.ArrayList<Integer> array = new java.util.ArrayList<Integer>();
		// 创建一个哈希集合
		java.util.HashSet<Integer> list = new java.util.HashSet<Integer>();
		// 装入元素,并且使其不出现重复元素
		for (int i = 0; i < a.length; i++) {
			int j = a[i];
			list.add(j);
		}

		// 遍历这个集合并放至数组中
		java.util.Iterator<Integer> iter = list.iterator();
		int h=0;
		

		while (iter.hasNext()) {
			int i = iter.next();
			a[h]=i;
			h++;
		}
       // 将元素排序
		  for(int i=0;i<list.size()-1;i++){
			  for(int j=i+1;j<list.size();j++){
				  if(a[i]>a[j]){
					  int b=a[i];
					  a[i]=a[j];
					  a[j]=b;
				  }
			  }
		  }
		 int[] c = new int[list.size()];
		  for(int i=0;i<list.size();i++){
			  c[i]=a[i];}
	  
		  return c;
	}
}
 
同样也可以用settree来做,这样就不需要排序了
2.给定任意字符串String str = "sadsadljsaljdlsajdlsajdlsajd";
     统计字符串中每个字符出现的次数

public class stringtest {
	public static void main(String[] args) {
		// 给点任意字符串
		String str = "abbcccddddeeeee";
		stringtest st = new stringtest();
		HashMap<Character, Integer> map = st.count(str);
		java.util.Set<Character> keys = map.keySet();
		// 遍历
		for (char c : keys) {
			int count = map.get(c);
			System.out.println(c + "的次数为:" + count);

		}
}

	public HashMap<Character, Integer> count(String str) {
		java.util.HashMap<Character, Integer> map = new java.util.HashMap<Character, Integer>();
		int count = 1;
		for (int i = 0; i < str.length(); i++) {
			char j = str.charAt(i);
			
			boolean b = map.containsKey(j);
			if (!b) {
				map.put(j, count);
			} else {
				int a = map.get(j);
				map.put(j, a + 1);
			}
}
		return map;
}
}

也可以num=map.get(j);再判断其num= NULL==num?1;++num;来替代,这样更加简便了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics