java集合——Set

本文介绍了Java中的Set接口,重点讲解了LinkedHashSet和TreeSet的特点及排序。LinkedHashSet保持插入顺序,TreeSet则进行自然排序。文章通过三个需求实例,演示了如何使用内置比较器和外置比较器对TreeSet进行排序,包括按照Integer、String、Student对象的年龄和名字长度排序。
摘要由CSDN通过智能技术生成

集合——Set

Set接口

特点:无序且不可重复

实现类:

  1. HashSet
  2. LinkedHashSet
  3. TreeSet

1.LikedHashSet

1.1 常用方法:

package com.study.linkedhashset;

import java.util.LinkedHashSet;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;

public class Test01 {
   

	public static void main(String[] args) {
   
		/**
		* 知识点:使用LinkedHashSet方法
		* 
	    * 特点:去重+有序
		*/
			
		LinkedHashSet<String> set = new LinkedHashSet<>();
			
		//添加元素
		set.add("麻生希");
		set.add("椎名空");
		set.add("爱田奈奈");
		set.add("三上悠亚");
		set.add("明日花绮罗");
			
		//获取元素的个数
		int size = set.size();
		System.out.println("获取元素的个数:" + size);//5

		LinkedHashSet<String> newSet1 = new LinkedHashSet<>();
		Collections.addAll(newSet1, "aaa","bbb","ccc","明日花绮罗");//利用集合工具类进行批量添加
		set.addAll(newSet1);//将新集合中所有的元素添加到指定集合的末尾
			
		//清空集合中所有的元素
		//set.clear();
			
		System.out.println("判断集合中是否包含某个元素:" + set.contains("椎名空"));//true
			
		LinkedHashSet<String> newSet2 = new LinkedHashSet<>();
		Collections.addAll(newSet2, "eee","ddd","fff","ggg");//利用集合工具类进行批量添加
		System.out.println("判断集合中是否包含某个集合中所有元素:" + set.containsAll(newSet2));//false
			
		boolean empty = set.isEmpty();//有元素-false 没有元素-true
		System.out.println("判断集合中是否没有元素:" + empty);//false
			
		//删除
		set.remove("爱田奈奈");//依据元素删除元素
			
		//删除 - 去交集
		LinkedHashSet<String> newSet3 = new LinkedHashSet<>();
		Collections.addAll(newSet3, "fff","aaa","bbb","xxx");//利用集合工具类进行批量添加
		set.removeAll(newSet3);
			
		//保留交集	
		LinkedHashSet<String> newSet4 = new LinkedHashSet<>();
		Collections.addAll(newSet4, "小明","小红","椎名空","爱田奈奈","三上悠亚","yyy");//利用集合工具类进行批量添加
		set.retainAll(newSet4);
		
		//将集合转换为数组
		Object[] array = set.toArray();
		System.out.println(Arrays.toString(array));
			
		System.out.println("-------------");
			
		//遍历 - foreach
		for (String element : set) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值