导航:首页 > 编程语言 > javaset取元素

javaset取元素

发布时间:2022-12-08 17:45:52

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

两种向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 进行排序。

B. java中从hashset中取元素

package test;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Func{
//我假定是String类型的
public static Set<String> set = new HashSet<String>();
public static void main(String[] args){
add();
show();
}
public static void add(){
set.add("小白");
set.add( "java");
}
public static void show(){
//迭代的方法
Iterator it = set.iterator();
//这个set是否有下一个
while(it.hasNext()){
//有就把下一个取出来
String str = (String) it.next();
System.out.println(str);
}
}
}

C. 怎样从java集合类set中取出数据

用循环或者迭代器

创建set的iterator
Set<Object> set = new HashSet<Object>();
Iterator<Object> it = set.iterator();
while(it.hasNext())//判断是否有下一个
it.next()取出元素
======================================
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

class ADD{
public String a;

public static void main(String[] args) {
ADD a = new ADD();
a.a = "a";
ADD b = new ADD();
b.a = "b";
Set<ADD> set = new HashSet<ADD>();
set.add(a);
set.add(b);
Iterator<ADD> it = set.iterator();
while(it.hasNext()){
System.out.println(((ADD)it.next()).a);
}
}
}

D. 怎样从java集合类set中取出数据

一般是通过迭代期获取数据,因为set集合无序,所以输出不是顺序输出

importjava.util.HashSet;
importjava.util.Iterator;
importjava.util.Set;

publicclassTest{
publicstaticvoidmain(String[]args){
//初始化set集合
Set<String>set=newHashSet<>();
set.add("1");
set.add("2");
set.add("3");
//获取set集合数据
for(Iteratoriterator=set.iterator();iterator.hasNext();){
Stringstring=(String)iterator.next();
System.out.println(string);
}

}
}

E. java set有get方法吗

你想问的应该是:java.util.Set 有没有像 list 一样的get方法吧?
答案是没有;
List特点:元素有放入顺序,元素可重复
Set特点:元素无放入顺序,元素不可重复
List的get方法需要下标,其实也就是放入顺序,由于Set没有放入顺序,所以这应该就是没有给Set设计get方法的原因吧
(扩展:在Set中的位置是由元素的HashCode决定的,位置其实是固定的)

要取Set的值,一般是用iterator() 方法获取迭代器进行操作,也可以用toArray()方法转成数组来操作。

F. 为什么Set及子类中没有提供随机取元素的方法

1.可以用Set的一下两个方法获取可以随机访问的数组:

引用
Object[] toArray()
返回一个包含 set 中所有元素的数组。
<T> T[]
toArray(T[] a)
返回一个包含 set 中所有元素的数组;返回数组的运行时类型是指定数组的类型。

2.可以继承HashSet,使用复合数据结构:
Java代码 收藏代码
import java.util.ArrayList;
import java.util.HashSet;

public class ArraySet<E> extends HashSet<E> {

private static final long serialVersionUID = -7548294595221509577L;
private ArrayList<E> list = new ArrayList<E>();

/**
* @param index
* @return
* @see java.util.ArrayList#get(int)
*/
public E get(int index) {
return list.get(index);
}

@Override
public boolean add(E o) {
if (super.add(o)) {
list.add(o);
return true;
} else
return false;
}

@Override
public boolean remove(Object o) {
if (super.remove(o)) {
list.remove(o);
return true;
} else
return false;
}

@Override
public void clear() {
super.clear();
list.clear();
}

}

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

1、Set:它是无序、不重复、该接口中的方法和Collection接口中的方法一致。

继承它的子类有HashSet和TreeSet。

根据元素的两个方法来完成的,一个是HashCode、一个是equals方法,只有当hashCode方法算出哈希值相同时,会再次判断两个元素的equals方法是否为true,如果是true说明两个元素相同,不存储,所以往hashSet集合中存储自定义对象时,要覆盖hashCode,equals方法,通过自定义对象具备的特有数据定义hashCode、equals的具体实现。

它保证元素的唯一性,就是通过元素对象的比较方法返回值来确定的,如果为0,则视为两个元素时相同的元素,不存储。

treeset的两种排序方式:

1、让元素自身具备比较功能,就是强制让元素类去实现comparable接口,覆盖compareTo方法,这时元素具备的自然排序,可是如果元素自身不具备比较功能,获取具备的比较功能不是所需要的,这时排序方式就不能用了。

2、让集合自身具备比较功能,需要定义比较器,其实就实现了comparetor接口的子类对象作为参数传递给treeSet集合的构造函数,让treeSet集合一创建就具备了比较功能,该子类必须要覆盖compare方法。

阅读全文

与javaset取元素相关的资料

热点内容
openldaplinux安装 浏览:23
java取月的最后一天 浏览:10
腾讯云服务器多久退款 浏览:949
微信广告植入系统源码 浏览:922
一年级语文上册pdf 浏览:315
好久不见app干什么用的 浏览:143
压缩包解压码对方可以更改吗 浏览:256
pdf电子书制作软件 浏览:888
数控三通编程 浏览:300
linux多终端 浏览:811
法律写作pdf 浏览:144
国货哪个品牌最好app 浏览:951
看哪个app给钱最多 浏览:178
编程靠经验吗 浏览:759
c教程pdf下载地址 浏览:573
制作视频哪个app有瘦脸功能 浏览:649
linux查看线程内存 浏览:509
命令行签名apk 浏览:92
网页照片旋转源码 浏览:842
QQ会员头像源码 浏览:263