java 集合 Set
来源:互联网 发布:智慧足迹数据 编辑:程序博客网 时间:2024/06/05 14:12
Set集合里面的多个对象没有明显顺序。Set不允许有重复元素。
当试图把两个相同的对象()加入一个Set中时,对象会调用equals方法比较两个对象元素是否相同,相同则不会加入。
下面是几种遍历方法,以及set中调用实例
//Java中Set集合是一个不包含重复元素的Collection//也就是,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SetTest2 { public static void main(String[] args) { Set<String> set = new HashSet<String>(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); System.out.println("set="+set); boolean flag=set.add("e");//不能放入重复数据 System.out.println("\"e\"能放入set集合中?:"+flag); //迭代遍历:while循环实现 //获取Set集合的迭代器 System.out.println("while循环迭代遍历---------------------"); System.out.print("set={"); Iterator<String> iterator=set.iterator(); while(iterator.hasNext()) { //取出集合元素 String next=iterator.next(); System.out.print(next+" "); }System.out.print("}\n"); System.out.println("for循环迭代遍历---------------------"); //迭代遍历: for循环实现,跟while循环差不多 System.out.print("set={"); for(Iterator<String> it=set.iterator();it.hasNext();) { String next=it.next(); System.out.print(next+" "); }System.out.print("}\n"); System.out.println("foreach遍历---------------------"); //foreach遍历 System.out.print("set={"); for(String value : set){ System.out.print(value+" "); }System.out.print("}\n"); //其他功能小测 //查询元素 System.out.println(set.contains("a"));//true Set<String> set2 = new HashSet<String>(); set2.add("f"); set2.add("g"); //求并集: System.out.println("set="+set); set.addAll(set2); System.out.println("set2="+set2); System.out.println("set="+set); //判断连个集合是否相等:1,元素个相同,2,值相同 /*比较指定对象与此 set 的相等性。 * 如果指定的对象也是一个 set,两个 set 的大小相同, * 并且指定 set 的所有成员都包含在此 set 中 * (或者,此 set 的所有成员都包含在指定的 set 中也一样), * 则返回 true。此定义确保了 equals 方法可在不同的 set 接口实现间正常工作。 */ Set<String> set3 = new HashSet<String>(); set3.addAll(set2); System.out.println(set3.equals(set2));//true set3.add("1"); System.out.println(set3.equals(set2));//false //置空 set3.clear(); //判空 System.out.println(set3.isEmpty());//true set3.addAll(set2); //移除某个元素 System.out.println("set3="+set3);//set3=[f, g] System.out.println(set3.remove("f"));//true System.out.println(set3.remove(2));//flase System.out.println("set3="+set3);//set3=[g] set3.add("new"); //全部移除set2中的元素 System.out.println("set3="+set3);//set3=[new, g] set3.removeAll(set2); System.out.println("set3="+set3);//set3=[new] set3.addAll(set2); System.out.println("set3="+set3);//set3=[new, f, g] //set3中值保留set2中的元素 set3.retainAll(set2); System.out.println("set3="+set3);//set3=[f, g] //返回数组:Object类型数组 Object[] objects=set3.toArray(); System.out.print("objects={"); for (Object object : objects) {System.out.print(object+" ");}System.out.print("}\n");//返回指定类型数组 String[] strings=set3.toArray(new String[0]);System.out.print("strings={");for (String string : strings) {System.out.print(string+" ");}System.out.print("}\n");//返回容量:System.out.println("set3中元素的个数为"+set3.size());//2 } }
结果:
set=[a, b, c, d, e]
"e"能放入set集合中?:false
while循环迭代遍历---------------------
set={a b c d e }
for循环迭代遍历---------------------
set={a b c d e }
foreach遍历---------------------
set={a b c d e }
true
set=[a, b, c, d, e]
set2=[f, g]
set=[a, b, c, d, e, f, g]
true
false
true
set3=[f, g]
true
false
set3=[g]
set3=[new, g]
set3=[new]
set3=[new, f, g]
set3=[f, g]
objects={f g }
strings={f g }
set3中元素的个数为2
阅读全文
0 0
- java集合---set集合
- JAVA集合-Set集合
- Java集合----Set集合
- Java集合之Set集合
- Java集合--Set集合总结
- Java集合之Set集合
- Java集合—Set集合
- java集合Set操作
- java集合----------Set
- JAVA集合之SET
- java 遍历set集合
- java-----集合Set
- java遍历Set集合
- java集合框架Set
- Java遍历Set集合
- java中的Set集合
- java中set集合
- java集合(Set)
- 日常知识(1)
- linux : add new log type to plog
- vi 整行 多行 复制与粘贴
- js join() 方法和splice() 方法 slice() 方法 记一下啦
- string 深入理解字符串
- java 集合 Set
- 使用maven时出现Failure to transfer 错误的解决方法(再次掉入神坑)
- 莫队算法
- RPC框架技术初窥
- 【easyui】禁用元素
- List转换成Tree
- CNN中特征映射层(S2)有特征提取层(C3)特征映射是怎么作用的
- Redis协议
- PHP面向对象特性-多态