Java中的HashSet与TreeSet(Set为接口,无法实例化)

本文深入探讨了Java集合框架中的HashSet与TreeSet,解析了它们的特点与使用场景。HashSet不允许重复元素,不保证顺序,可以包含一个null元素;而TreeSet则提供了排序功能,需要元素实现Comparable接口,适用于需要排序的场景。
摘要由CSDN通过智能技术生成

1.HashSet

package one.ll;
/*
 * 1.不能保证元素的排列顺序,顺序有可能发生变化
 * 2.不会有重复元素
 * 3.不是同步的
 * 4.可以有null,只能有一个
 * 
 * 
 */
import java.util.*;
public class Main {
     public static void main(String[]s) {
     Set<String>  se=new HashSet<String>();
     se.add("111");
     se.add("222");
     se.add("333");//向集合中添加元素
     if(se.contains("111"))//判断集合中是否有某个元素
    	 System.out.println("YES");
     else
    	 System.out.println("NO");
     Iterator it=se.iterator();//返回se的迭代器
     while(it.hasNext())//利用迭代器遍历集合中的元素
    	 System.out.println(it.next());
     se.remove("111");//删除集合中的某个元素
     for(String i:se)//利用foreach语句遍历集合中的元素
    	 System.out.println(i);
     System.out.println(se.size());//返还集合中的元素个数
     if(se.isEmpty())//判断集合是否为空
    	 System.out.println("Yes");
     else
    	 System.out.println("NO");
     se.clear();//清空集合中的元素
     System.out.println(se.size());//再次输出集合中元素的个数,判断集合是否已经被清空
     }
}

2.TreeSet

package one.ll;
import java.util.*;
/*
 * TreeSet种的基本方法与HashSet相同
 * TreeSet在使用时,需要在自定义类中实现Comparable接口,因为TreeSet中的元素是按照一定顺序排列的
 * */
class People implements  Comparable<People>
{
	String name;
	int age;
	People(String name,int age)
	{
		this.name=name;
		this.age=age;
	}//构造器
    public int compareTo(People a){
    	if(a.age==age)
    		return 1;
    	if(age>a.age)
    		return 1;
    	return 0;
    }
    void print()
    {
    	System.out.println(name+" "+age);
    }
}
public class Main {
     public static void main(String[]s) {
    Set<People> se=new TreeSet<People>();
    se.add(new People("张三",15));
    se.add(new People("刘庆祝",45));
    se.add(new People("刘云波",30));
    se.add(new People("吴雨昆",60));
    for(People i:se)
    {
    	System.out.println(i.name+" "+i.age);
    }
    System.out.println(se.size());
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值