请问在Java 中如何Set集合中的对象?具体步骤?
发布网友
发布时间:2022-04-30 08:12
我来回答
共3个回答
热心网友
时间:2022-06-19 14:30
首先你应该知道Set的继承体系吧,它和List都是继承于接口Collection的,它们底层有的用数组实现,有的用链表来实现。
对于Set来说,它还有TreeSet和HashSet两个子类。首先,说Set是没有顺序的是不准确的。
1,对于HashSet来说,它是按照你存入对象的hashcode的值来排序的,几乎没有规律,所以我们可以认为它是无序的。
2,对于TreeSet来说,它有自然排序和定制排序两种排序方式,通过你传入的对象实现Comparable接口和Comparator接口来实现,要是详细讲解的话知识点还是比较多的,你可以自己去查资料。
Set说完了,那么我们就来说说这个接口所提供的关于删除的方法。
1,clear()
移除此 set 中的所有元素(可选操作)。,
2,remove(Object o)
如果 set 中存在指定的元素,则将其移除(可选操作)。
3,removeAll(Collection<?> c) 移除 set 中那些包含在指定 collection 中的元素(可选操作)。 ,
4,retainAll(Collection<?> c) 仅保留 set 中那些包含在指定 collection 中的元素(可选操作)。
在具体的你就 自己去看Api文档吧
热心网友
时间:2022-06-19 14:31
用他的remove()方法,set是没有顺序的,一般在列举对象的时候用的都是list对象 ,追问我也知道用remove()方法 底层是怎么走的?
追答set 字段中的对象可以用eqluse()方法,如果对象的equles相对说明是同意对象,然后再里面写上他的remove()就可以了
热心网友
时间:2022-06-19 14:31
import java.util.HashSet;import java.util.Set;
public class tes {
public static void main(String[] args) {
//set集合,元素是不重复的。通过equal判断是否相等
//如果是自定义的对象,需要重写equal和hashcode方法
Set set = new HashSet();
set.add("sina");
set.add("");
set.add("");
System.out.println(set.toString());
set.remove("");
System.out.println(set.toString());
}
}
======
结果:
[, sina]
[sina]