队列以及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 HashSet是Java集合框架中的一种重要数据结构,用于存储不重复的元素。通过实例学习Java集合框架HashSet,可以帮助开发者更好地理解和使用HashSet,提高编程效率和代码质量。本文将...
java HashSet 集合排序,需要通过利用TreeSet集合排序。2013-10-30。
在ArrayList和HashSet的比较中,我们可以总结以下几点: 1. 数据结构:ArrayList基于数组,而HashSet基于哈希表。 2. 插入/删除性能:HashSet通常比ArrayList更快,因为其内部结构为哈希表,查找和插入操作接近O(1)...
本篇将详细讲解如何利用Java的HashSet类来删除学生对象,以及HashSet的一些核心特性。 首先,了解HashSet的基本操作。HashSet类提供了添加元素(add())、删除元素(remove())、检查元素是否存在(contains())等...
Java中的HashSet详解和使用示例 HashSet是Java中一个非常重要的集合类,它继承于AbstractSet,并实现了Set接口。HashSet的主要特点是没有重复元素的集合,它是通过HashMap实现的,不保证元素的顺序,而且HashSet...
在Java编程语言中,HashSet是一种基于哈希表(HashMap)实现的无序、不重复的集合类。它的核心特点是高效查找、添加和删除元素。在深入解析HashSet之前,我们需要了解其内部使用的HashMap的工作原理。 HashMap是...
本篇将详细介绍Java语言中HashSet类的使用,包括其继承结构、构造函数、常用方法以及实例演示。 首先,HashSet类继承自AbstractSet类,并实现了Set接口。这意味着HashSet同时具备了Set集合的特性,如不允许包含重复...
HashSet是Java编程语言中的一种集合类,它是一个不包含重复元素的集合,其内部实现基于HashMap。HashSet不保证元素的顺序,允许存储null元素,并且是非同步的,这意味着在多线程环境下,如果需要保证线程安全,需要...
"Java集合类总结" Java集合类是Java语言中的一种重要数据结构,用于存储和管理数据。Java集合类可以分为两种:Collection接口和Map接口。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以...
Java集合框架是存储和管理对象的重要工具,包括List、Set、Map等接口以及ArrayList、LinkedList、HashSet、HashMap等实现类。这些容器允许我们高效地组织和操作数据。 五、输入/输出(I/O)与网络编程 Java的I/O库...
* 栈和队列:Java中的栈和队列是一种特殊的数据结构,遵循先进先出(FIFO)或后进先出(LIFO)的原则。 三、算法 * 排序算法:Java中有多种排序算法,包括冒泡排序、选择排序、插入排序、归并排序等。 * 搜索算法...
在Java编程中,HashSet是一种不允许存储重复元素的集合,它实现了Set接口。HashSet是通过HashMap来实现的,其底层使用HashMap来保存所有元素。这种实现方式让HashSet的操作非常简单高效,因为HashSet的大部分操作,...
Java基础知识是每个Java开发者必备的技能,这里将对标题和描述中涉及的点进行详细的解释...以上就是对Java基础知识的一些总结,这些内容涵盖了集合框架、并发编程以及线程管理等多个方面,是理解和使用Java编程的基础。
`HashSet`是Java集合框架的一部分,它实现了`Set`接口。`HashSet`不允许重复的元素,并且不保证元素的顺序。此外,`HashSet`是非同步的,这意味着多线程环境下的安全问题需要通过外部同步机制解决。 #### 二、特点 ...
掌握List集合、Set集合、Map集合的使用以及Iterator迭代器和foreach循环的使用 了解常用的集合类 熟悉泛型的使用
这份“Java类集”笔记是对这一关键主题的全面整理和总结,旨在帮助Java程序员更好地理解和运用这些工具。 首先,笔记可能会详细解释集合框架的基础,包括`Collection`接口和`List`, `Set`, `Queue`等子接口。`...
**JAVA基础知识精华总结** 在Java编程领域,基础知识是学习进阶技术的基石。这份"JAVA基础知识精华总结"文档涵盖了初学者需要掌握的核心概念,旨在帮助新手快速理解和掌握Java语言的基本特性。 1. **Java简介** ...