当前位置:首页>开发>正文

java里面的集合框架的set用法应该怎么做 java集合set有哪些方法

2023-06-26 12:59:49 互联网 未知 开发

 java里面的集合框架的set用法应该怎么做 java集合set有哪些方法

java里面的集合框架的set用法应该怎么做


1、Set:它是无序、不重复、该接口中的方法和Collection接口中的方法一致。
继承它的子类有HashSet和TreeSet。
HashSet:底层是哈希表数据结构,不同步的它保证元素的唯一性的方式。
根据元素的两个方法来完成的,一个是HashCode、一个是equals方法,只有当hashCode方法算出哈希值相同时,会再次判断两个元素的equals方法是否为true,如果是true说明两个元素相同,不存储,所以往hashSet集合中存储自定义对象时,要覆盖hashCode,equals方法,通过自定义对象具备的特有数据定义hashCode、equals的具体实现。
treeSet:用于给集合中的额元素按照指定的顺序进行排序,底层是二叉树结构,线程是不同步的。
它保证元素的唯一性,就是通过元素对象的比较方法返回值来确定的,如果为0,则视为两个元素时相同的元素,不存储。
treeset的两种排序方式:
1、让元素自身具备比较功能,就是强制让元素类去实现comparable接口,覆盖compareTo方法,这时元素具备的自然排序,可是如果元素自身不具备比较功能,获取具备的比较功能不是所需要的,这时排序方式就不能用了。
2、让集合自身具备比较功能,需要定义比较器,其实就实现了comparetor接口的子类对象作为参数传递给treeSet集合的构造函数,让treeSet集合一创建就具备了比较功能,该子类必须要覆盖compare方法。

java集合set有哪些方法

set是一个接口,一般实现类用HashSet

方法摘要

boolean add(E e)
如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。
boolean addAll(Collection c)
如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中(可选操作)。
void clear()
移除此 set 中的所有元素(可选操作)。
boolean contains(Object o)
如果 set 包含指定的元素,则返回 true。
boolean containsAll(Collection c)
如果此 set 包含指定 collection 的所有元素,则返回 true。
boolean equals(Object o)
比较指定对象与此 set 的相等性。
int hashCode()
返回 set 的哈希码值。
boolean isEmpty()
如果 set 不包含元素,则返回 true。
Iteratoriterator() 返回在此 set 中的元素上进行迭代的迭代器。 boolean remove(Object o) 如果 set 中存在指定的元素,则将其移除(可选操作)。 boolean removeAll(Collection c) 移除 set 中那些包含在指定 collection 中的元素(可选操作)。 boolean retainAll(Collection c) 仅保留 set 中那些包含在指定 collection 中的元素(可选操作)。 int size() 返回 set 中的元素数(其容量)。 Object[] toArray() 返回一个包含 set 中所有元素的数组。 T[] toArray(T[] a) 返回一个包含此 set 中所有元素的数组;返回数组的运行时类型是指定数组的类型。

Java中set与get使用


this 就是当前类 this.name 就是 访问 成员变量(全局)。
get方法中return 用this 不用 都是一样的
而 你set 要通过 传参只要参数名不一样就可以 不用 this.
如果参数名与变量一样了,机器编译就分不清 谁是谁

最新文章