java中怎么往集合类set里添加数据??

java中怎么往集合类set里添加数据??,第1张

两种向Set中添加元素的方法,第一种是使用add()方法,每次添加一个元素到set中,当集合中不存在相同元素时将添加到集合中,并返回true,当集合中存在元素时,返回false。代码如下:

Set<String>sets = new HashSet<>()

sets.add("String")

System.out.println(sets.add("Tree"))

System.out.println(sets.add("String"))

List<String>lists = new LinkedList<>()

lists.add("test")

lists.add("test")

lists.add("one")

System.out.println(sets.addAll(lists))

还有一个是向集合中批量添加元素的方法addAll(),这个方法的入参是Colletion。上述代码执行结果如下:

扩展知识

Set集合可以知道某物是否已近存在于集合中,不会存储重复的元素,注重独一无二的性质,用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。可以很好地作为排重时使用的数据结构,但要注意集合内部数据一般情况没有顺序。常用的set有HashSet和TreeSet。

TreeSet是JAVA中集合的一种,TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>,Cloneable,java.io.Serializable接口。一种基于TreeMap的NavigableSet实现,支持2种排序方式:自然排序 或者 根据创建TreeSet 时提供的 Comparator 进行排序。

创建set对象

为了管理set的二叉树链表数据,先用set容器的构造函数,创建一个set对象

(1) set()

用默认的less<T>函数对象和内存分配器,创建一个没有任何数据元素的set对象。

set<int>s //创建了空的set对象s,元素类型为整型int

(2) set(const key_compare&comp)

指定一个比较函数对象 comp 来创建set对象,内存分配器为默认值。

//定义字符串比较函数对象 strLess

struct strLess {

bool operatro() (const char *s1, const char *s2) const

{

return strcmp(s1, s2) <0

}

}

//创建set容器对象s

set<const char*, strLess>s(strLess())

(3)set(const set&)

set拷贝构造函数,通过红黑树的拷贝构造函数,实现两个set容器的元素、头结点和节点个数的拷贝。

//set<int>s1

set<int>s2 (s1)

(4)set(InputIterator first, InputIterator last)

用区间迭代器[first, last)所指的元素,创建一个set对象。

int iArray = { 13, 32,19 }

set<int>s(iArray, iArray+3)

(5)set(InputIterator first, InputIterator last, const key_compare&comp)

用区间迭代器[first, last)所指的元素和comp函数对象,创建一个set对象。

const char* szArray = {"hello", "dog", "bird" }

set<const char* , strLess>s(szArray, szArray+3, strLess() )

元素的插入

set没有尾部插入函数push_back(),元素的插入一般使用insert进行动态检索插入。

(1)pair<iterator, bool>insert(const value_type&v)

将元素v插入set容器,要求v值不与set容器的任何元素重复,否则插入失败。返回一个pair配对对象,提供所插入元素的迭代器位置和true/false插入成功标志。

(2)iterator insert(iterator position, const value_type&v)

将元素v插入set容器,参数position提示可在position位置之前插入v,所返回的插入位置视实际情况而定,不一定能在position位置之前插入。

(3)void insert(inputIterator fist, InputIterator last)

将某迭代器区间[first, last)所指的数据作为元素,插入到set容器。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11713408.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存