HashSet简单的理解就是HashSet对象中不能存储相同的数据,存储数据时是无序的。但是HashSet存储元素的顺序并不是按照存入时的顺序(和List显然不同) 是按照哈希值来存的所以取数据也是按照哈希值取得。存储是无序的这就和C++里的Set就不一样了C++里面的Set是有序的我认为这是在使用时候的主要区别。下面就是HashSet简单的用法:
一.申请方式
括号里面的类型是随你的需要更改的。
二.常用方法:
类型 方法名 功能
boolean add(E e) 如果当前列表中不存在e, 则将e加入列表
void clear() 从列表中删除所有元素
boolean contains(Object j) 判断列表中是否有元素j
Iterator<E> iterator() 得到当前列表的遍历器
boolean remove(Object j) 如果列表中存在元素j,则将其从列表中删除
int size() 得到列表中元素的个数
三.遍历的方法:
1.用Iterator来遍历

这是比较常用的方法, 但是这种方法在使用的时候HashSet修改一次之后如果想再次遍历,必须重新申请Iterator,否则 无法遍历,但是把Itetator放在一个函数里, 那么就省去多次申请Iterator了。
2.这种方法就是用for循环遍历。

这种方法我感觉还行,具体用那种方法遍历自己斟酌。
四.简单的使用
package cn.java.text.Main; import java.util.*; public class Main4 {//HashSet public static void main(String[] args) { // TODO Auto-generated method stub Scanner ip = new Scanner(System.in); HashSet<String> hashSet = new HashSet<String>(); int i; String aString; for(i = 0; i < 6; i++) { aString = ip.next(); hashSet.add(aString);//加入列表 } Iterator<String> iterator = hashSet.iterator();//遍历器 while(iterator.hasNext())System.out.print(iterator.next()+" ");//判断是否有,有就输出 String bString; bString = ip.next(); hashSet.remove(bString);//删除 /*Iterator iterator2 = hashSet.iterator(); while(iterator2.hasNext()) {//遍历器遍历 System.out.print(iterator2.next()+" "); }*/ for(String string: hashSet)System.out.print(string + " ");//for循环遍历 } }

五.当HashSet是整型时

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232397.html原文链接:https://javaforall.net
