[size=large]队列以及hashset hashmapd总结
队列是有序的,但是hashset和hashmap都是不保证其有序的,hashset相当于一个集合,hashmap则是一个映射。Hashset要存的数据若在hashset里面已经存在的话,则不会被存进去了,但是hashmap却不一样,若关键字相同,还是会存进去,即原来的映射被新的调换了。因此其关键字所对应的value可以改变。
Hashset可以用来除去数组或者队列中的相同元素,使之不会重复。Hashmap可以利用关键字来改变其相对应的value的值。
相关练习题
1.给定任意int一维数组
a.去掉数组中的重复元素
b.给数组排序[/size]
[size=large]同样也可以用settree来做,这样就不需要排序了
2.给定任意字符串String str = "sadsadljsaljdlsajdlsajdlsajd";
统计字符串中每个字符出现的次数[/size]
[size=large]也可以num=map.get(j);再判断其num= NULL==num?1;++num;来替代,这样更加简便了。[/size]
队列是有序的,但是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]