Set接口继承自collection接口,但自己的特点是:无序性、确定性、不重复;
它有三个常用的实现类,HashSet;TreeSet;LinkedHashSet;
实例:(HashSet)//hanshset有特定的哈希算法,是有特定的顺序的
import java.util.*;
class Find{
public static void Dome(String[] myString) {
//创建一个HashSet对象,默认的初始容量为16;
Set<String>s= new HashSet<String>();
//将命令行中的每个字符串加入到集合s中,其中重复的自负床将不能加入,这是Set类的特有性质:不可重复;
for(String a:myString){//此式用"String a:myString"遍历myString传入a;
if(!s.add(a)) //向集合s中加入a元素,如果成功返回TRUE,在此式中有取反,所以如果传入失败,则会变成TRUE,就会进入if的body执行内容
System.out.println("重复的元素被删除:"+a);
}
//输出集合s的元素个数以及集合中的所有元素
System.out.println("size is:"+s.size()+"\n元素:"+s);
}
}
public static void Dome(String[] myString) {
//创建一个HashSet对象,默认的初始容量为16;
Set<String>s= new HashSet<String>();
//将命令行中的每个字符串加入到集合s中,其中重复的自负床将不能加入,这是Set类的特有性质:不可重复;
for(String a:myString){//此式用"String a:myString"遍历myString传入a;
if(!s.add(a)) //向集合s中加入a元素,如果成功返回TRUE,在此式中有取反,所以如果传入失败,则会变成TRUE,就会进入if的body执行内容
System.out.println("重复的元素被删除:"+a);
}
//输出集合s的元素个数以及集合中的所有元素
System.out.println("size is:"+s.size()+"\n元素:"+s);
}
}
//测试类
public class TestDome{
public static void main(String[] args) {
String[] test01={"dog","is","a","dog"};
Find a=new Find();
a.Dome(test01);
}
}
public class TestDome{
public static void main(String[] args) {
String[] test01={"dog","is","a","dog"};
Find a=new Find();
a.Dome(test01);
}
}
输出结果:
重复的元素被删除:dog
size is:3
元素:[a, is, dog]
size is:3
元素:[a, is, dog]
//输出的是特定的顺序