0
点赞
收藏
分享

微信扫一扫

58 java集合和泛型_8 _Collection父接口的另一个子接口Set接口


58 java集合和泛型_8 _Collection父接口的另一个子接口Set接口

Set集合–Set子接口

  1. 特点:无序、无下标、元素不可重复。
  2. 方法:(全部继承自Collection中的方法,并没有提供其他的方法)…(可查看api学习)
  3. jdk的介绍:
  • 一个不包含重复元素的 collection。更确切地讲,set 不包含满足​​e1.equals(e2)​​​ 的元素对​​e1​​​ 和​​e2​​,并且最多包含一个 null 元素

Set接口的使用

package com.wlw.collection.set;

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

/**
* Set接口的使用
* 特点:无序 无下标 元素不可重复
*/
public class Set_Demo {
public static void main(String[] args) {

Set<String> set = new HashSet<String>();

//1.添加
set.add("华为");
set.add("苹果");
set.add("小米");
System.out.println("元素个数:"+set.size());
System.out.println(set.toString());

//2.删除
/*
set.remove("小米");
System.out.println("删除之后,元素个数:"+set.size());
System.out.println("删除之后:"+set.toString());
*/

//3.遍历
//两种方式(增强for 和迭代器,因为无下标,所以不能使用普通for)
//3.1增强for
System.out.println("---------------3.1增强for-------------------");
for (String s : set) {
System.out.println(s);
}

//3.2迭代器
System.out.println("---------------3.2迭代器-------------------");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
String s = iterator.next();
System.out.println(s);
}

//4。判断
System.out.println(set.contains("苹果"));//true
System.out.println(set.isEmpty());;//false


}
}
/*
元素个数:3
[苹果, 华为, 小米]
---------------3.1增强for-------------------
苹果
华为
小米
---------------3.2迭代器-------------------
苹果
华为
小米
true
false

*/

Set实现类

  1. HashSet 【重点】 :
  • 基于HashCode实现元素不重复。(里面是一个哈希表)
  • 当存入元素的哈希码相同时,会调用equals进行确认, 如结果为true, 则拒绝后者存入。
  1. TreeSet:
  • 基于排列顺序实现元素不重复。
  • 实现了SortedSet接口,对集合元素自动排序。
  • 元素对象的类型必须实现Comparable接口,指定排序规则。
  • 通过CompareTo方法确定是否为重复元素。


举报

相关推荐

0 条评论