Java中set的基本操作

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录


set是一个无序的集合没有下标且set中不能有重复的元素一般使用的set为HasSset。

1、定义Set

定义set时存储类型必须是类类型。例如基本数据类型int没有属性和方法其对应的类类型Integer,也称作int的包装类型实现了整数的属性和方法。Integer对应就是java将int实现为一个类并且对它赋予了方法和属性的对应类。

//定义一个set默认使用HashSet<>()
Set<Integer> set1 = new HashSet<>();
Set<int> set2=new HashSet<>();//不是类类型所以会报错
Set<String> set3 = new HashSet<>();

2、增删改操作

1新增

加入set的元素必须是声明时指定的类型元素。新增主要使用add方法set可以去重添加重复的元素set中只有一个。addAll可以将set或list添加到新的set中。

settest.add(1);
settest.add(2);
settest.add(44);
settest.add(44); //set存储的时候没有下标但set可以去重
System.out.println(settest);//输出结果是[1, 2, 44]

// 新定义一个set将set、list添加到新的set中
Set<Integer> settest2 = new HashSet<>();
ArrayList<Integer> lista = new ArrayList<Integer>();
settest2.addAll(lista);
settest2.addAll(settest);

2删出

//删除元素44
settest.remove(44);
//删除set中的所有元素
settest.clear();

3修改

由于set没有下标所以没法对其数据进行修改。

3、访问set

java可以直接输出set中的内容size方法可以获取到列表的长度。

System.out.println(settest);
System.out.println(settest.size());

输出结果为
在这里插入图片描述

4、遍历set

set中没有下标因此不能用普通for循环遍历下标。

1foreach遍历

// Integer类型可以自动转换为int
for (int x : settest) {
	x += 6;
	System.out.println(x);
}
// 取出set中的值进行操作并不影响set原有值。
System.out.println(settest);

2iterator迭代器遍历

// 声明set的迭代器
Iterator<Integer> sit = settest.iterator();
// 如果取值的次数超过了set中元素个数会报错 java.util.NoSuchElementException
for (int times = 0; times < 3; times++) {
	// 为了避免异常取值所以在取值之前先判断是否有下个值
	if (sit.hasNext()) {
		int si = sit.next();
		System.out.println(si);
	}
}
// 优化后得到
while (sit.hasNext()) {
	int si = sit.next();
	System.out.println(si);
}

5、set转换

set可以通过对应方法直接转为数组或字符串。toArray将 set 转换为数组toString将 set转换为字符串。

// set转换数组
Object[] listset=new Object[2];
istset=settest.toArray();
// 遍历数组
for(Object a:listset) {
		System.out.print(a);
	}
// 输出转换后的字符串
System.out.println(settest.toString());

6、其他操作

sEmpty方法------判断 arraylist 是否为空
contains方法------判断元素是否在 arraylist

System.out.println(settest.isEmpty());
System.out.println(settest.contains(2));

输出结果
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java