队列以及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;来替代,这样更加简便了。
分享到:
相关推荐
对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSet 的源代码,可以看到如下代码:
HashSet 是 Java 中的一个集合类,它实现了 Set 接口并提供了基于哈希表的无序、不重复元素的集合。具体来说,它是通过哈希表(实际上是一个 HashMap 实例)来存储元素的。 以下是 HashSet 的一些主要特点: 无序...
java HashSet 集合排序,需要通过利用TreeSet集合排序。2013-10-30。
java 利用HashSet删除学生 java 利用HashSet删除学生
Java基础加强_ArrayList_HashSet的比较及Hashcode分析
主要介绍了通过实例学习Java集合框架HashSet,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java中HashSet的解读_.docx
HashSet 是一个没有重复元素的集合。接下来通过实例代码给大家介绍java中的hashset相关知识,感兴趣的朋友一起看看吧
这个是关于java语言的hashset集合类的一些基本用法和详解了个方法的使用
HashSet的实现原理 ,HashSet与HashMap的区别 以及 HashSet的底层实现方式
《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...
下面小编就为大家带来一篇Core Java 简单谈谈HashSet(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Class005_HashSet.java
Java HashSet Java 集合框架 HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的,即不会记录插入的顺序。 HashSet 不是线程安全的, 如果多个线程...
HashSet 是一个没有重复元素的集合。 它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。 HashSet是非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它...
图文并茂,能让大家很好的理解java中这个重要的知识点。 此文档需要wps或者office软件来查看,如果你没有此软件,到http://www.wps.com.cn 下载wps即可查看此文档。 注:本人所有资源都是共享的,的资源分都是0!
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
Java Generics and Collections 英文版,详细描述java 泛型技术
这篇集合总结一共包括十二节,介绍了一些接口和实现类的底层源码以及基本的增加、删除元素等的操作(包括List、Map、Set接口、ArrayList、Vector、LinkedList、HashSet、TreeSet、HashMap、TreeMap等实现类)。...