java队列以及hashset hashmapd总结

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

[size=large]同样也可以用settree来做,这样就不需要排序了
2.给定任意字符串String str = "sadsadljsaljdlsajdlsajdlsajd";
统计字符串中每个字符出现的次数[/size]
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;
}
}

[size=large]也可以num=map.get(j);再判断其num= NULL==num?1;++num;来替代,这样更加简便了。[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值