Set
HashSet
package collection;
/**
* @author fkl
* @date 2021/1/14 10:35
**/
public class A implements Cloneable {
public String name;
/* public String name[];*/
public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
/* 当Class A成员变量类型是java的基本类型时(外加String类型),只要实现如上简单的clone(称影子clone)就可以。
但是如果Class A成员变量是数组或复杂类型时,就必须实现深度clone。*/
/* public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
o.name = new String[2];// 其实也很简单^_^
return o;
}*/
}
package collection;
import org.junit.Test;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* @author fkl
* @date 2020/12/30 9:36
**/
public class Setss {
@Test
public void hashSet() {
Set<String> set = new HashSet<>();
//将指定的元素添加到此集合
set.add("s2");
set.add("s3");
set.add("s4");
set.add("s2");
set.add("s5");
set.add("s1");
set.add(null);
for (String i : set) {
System.out.println(i);
}
System.out.println(set);
/* clear()
从此集合中删除所有元素。*/
/* clone()
返回此 HashSet实例的浅层副本:元素本身不被克隆。*/
//克隆前
A a1=new A();
A a2=new A();
a1.name="a1";
a2=a1;
a2.name="a2";
System.out.println("克隆前a1和a2变成了同一个引用地址");
System.out.println(a1.hashCode());
System.out.println(a2.hashCode());
System.out.println("a1.name="+a1.name);
System.out.println("a2.name="+a2.name);
//克隆后
a1.name = "a1";
a2 = (A)a1.clone();
a2.name = "a2";
System.out.println("克隆后a2值得改变并不会影响a1,因为引用的地址不是同一个");
System.out.println("克隆后a1:"+a1.hashCode());
System.out.println("克隆后a1:"+a2.hashCode());
System.out.println("克隆后a1.name=" + a1.name);
System.out.println("克隆后a1a2.name=" + a2.name);
/*contains(Object o)
如果此集合包含指定的元素,则返回 true 。*/
/*isEmpty()
如果此集合不包含元素,则返回 true 。*/
/* iterator()
返回此集合中元素的迭代器。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
*/
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
String str = iter.next();
System.out.println("Iterator:"+str);
}
Iterator<String> iter = set.iterator();
while (iter.hasNext()){
String str = iter.next();
System.out.println("Iterator while:"+str);
}
/* remove(Object o)
如果存在,则从该集合中删除指定的元素。*/
/* size()
返回此集合中的元素数(其基数)。*/
}
}

我是代码搬运工!!!
浙公网安备 33010602011771号