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));
输出结果