Set集合用法

Set集合用法性质底层采用哈希表算法,无序不可重复数组去重publicstaticString[]removeRepeat(String[]array){ Set<String>set=newHashSet<>(); for(inti=0;i<array.length;i++){ set.add(array[i]);…

大家好,又见面了,我是你们的朋友全栈君。

性质

底层采用哈希表算法,无序不可重复

数组去重

    public static String[] removeRepeat(String[] array){
		Set<String> set = new HashSet<>();
		for(int i = 0; i < array.length; i++){
			set.add(array[i]);
		}
		String[] arr = set.toArray(new String[set.size()]);
		return arr;
	}
	
	public static void main(String[] args) {
		String[] arr = {"java","java","C++","python"};
		String[] arr2 = removeRepeat(arr);
		System.out.println(Arrays.toString(arr2));
	}

Set集合用法

 

集合去重

        List<String> list = new ArrayList<>();
		list.add("aa");
		list.add("aa");
		list.add("bb");
		list.add("cc");
		list.add("cc");
		System.out.println("去重前list:"+list);
		Set<String> set2= new HashSet<>();
		set2.addAll(list);
		System.out.println("set2:"+set2);
		list.clear();
		list.addAll(set2);
		System.out.println("去重后list:"+list);

Set集合用法

 

TreeSet自动排序

实体类必须实现Comparable接口并重写CompareTo方法,编写排序规则(升序、降序)

public class SetTest {

	public static void main(String[] args) {

		Set<Person> set3 = new TreeSet<>();
		set3.add(new Person("Daniel",22));
		set3.add(new Person("Eddie",21));
		set3.add(new Person("Jesska",20));
		System.out.println(set3);

	}
}

class Person implements Comparable<Person>{
	
	String name;
	int age;
	
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
	
	
	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}

	@Override
	public int compareTo(Person arg0) {
		return this.age - arg0.getAge();
	}
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133014.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C–C语言中volatile关键字的作用[通俗易懂]

    C–C语言中volatile关键字的作用[通俗易懂]转载:http://blog.csdn.net/tigerjibo/article/details/7427366一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高

    2022年5月8日
    38
  • 再学C++ Primer(11)-模板与泛型编程

    再学C++ Primer(11)-模板与泛型编程

    2021年8月22日
    47
  • javacomparator_mybatis是做什么的

    javacomparator_mybatis是做什么的Myabatis-Plus集成异常下面贴出错误信息:java.lang.NoSuchMethodError:com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(Ljava/lang/CharSequence;)Z11:29:34.886[main]DEBUGorg.springframework.boot.context.logging.ClasspathLoggingApplicationListener-Appli

    2022年8月12日
    5
  • 在触屏设备上面利用html5裁剪图片[通俗易懂]

    在触屏设备上面利用html5裁剪图片

    2022年2月7日
    61
  • shufflenetv1详解

    shufflenetv1详解shufflenetv1知识的搬运工又来了论文地址:shufflenetv1论文地址ShuffleNet:AnExtremelyEfficientConvolutionalNeuralNetworkforMobileDevices。shufflenet是一篇关于降低深度学习计算量的论文,其可以运行在手机等移动设备端,发表在了CVPR2018上摘要此论文是一篇效率很高的cnn框架,可以运行在移动设备端,(例如,10-150 MFLOPs)而设计的,该结构利用分组逐点卷积(poin

    2025年8月26日
    6
  • C# ManualResetEvent

    C# ManualResetEvent原文链接http://dotnetpattern.com/threading-manualreseteventManualResetEvent和AutoResetEvent一样,是另外一种.NET线程同步技术。ManualResetEvent被用于在两个或多个线程间进行线程信号发送。多个线程可以通过调用ManualResetEvent对象的WaitOne方法进入等待或阻塞状态。当…

    2022年7月13日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号