美文网首页
Java Set的初始化方法

Java Set的初始化方法

作者: 幽澜先生 | 来源:发表于2020-03-10 14:40 被阅读0次

定义了一个Set后,我想把它初始化一下.

方法一. 利用了add函数, 如下:

public static void main(String[] args) {

    Set<String> testSet = new HashSet<String>();
    testSet.add("Monday");
    testSet.add("Sunday");
    System.out.println(testSet);
}

但是总觉得这样是不是有点麻烦,其实我也就使用一次,还新建了一个对象,于是可以用下面的方法二

方法二.

System.out.println(new HashSet<String>() {{
add("morning");
add("afternoon");
}});

这种初始化的方法,比第一种要简单一些,利用的有两个Java知识点,一个是匿名内部类,一个是实例初始化块。

所谓匿名内部类也就是没有名字的内部类,一般只使用一次,并且必须要继承一个父类或者实现一个接口。而匿名内部类的实现方式也就是当新创建一个父类对象时,后边加一个大括号,即:

new HashMap(){};

当定义一个类的时候,一般会定义构造函数,有时候还会定义静态函数和实例初始化块,比如:

public class TestAnnoInnerClass {

TestAnnoInnerClass(){
    System.out.println("i am a constructor");
}

static {
    System.out.println("i am a static method");
}

{
    System.out.println("i am a object ini block");
}

}

新建一个对象,运行一下,会发现执行顺序为
i am a static method
i am a object ini block
i am a constructor

那么既然之前我们定义了一个匿名内部类,那么它和正常的类一样,也会执行响应的初始化操作(匿名内部类没有构造函数),这也就是我们初始化Set中的第二个大括号,这个大括号定义了实例初始化块,所以在创建对象的时候就会被执行。

System.out.println(new HashSet<String>() { ---这个括号用来创建内部匿名类

{ -----这个括号表示是内部匿名类的实例初始化块
add("morning");
add("afternoon");
}

});

补充:对于这样的匿名类,是无法获取它的对象的。

方法三:

如果是利用数组初始化,还可以这样:

String s = "a,b,c,d,e,f";

Set<String >actionSet = new HashSet<>(Arrays.asList(s.split(",")));

相关文章

  • Java Set的初始化方法

    定义了一个Set后,我想把它初始化一下. 方法一. 利用了add函数, 如下: public static voi...

  • java常用方法

    java集合的方法:①Set set = new HashSet<>();②set.cont...

  • java常用方法

    java集合的方法:①Set set = new HashSet<>();②set.cont...

  • Builder模式

    一直习惯在写java bean的时候用到get、set方法获取值或设置对象属性值,或通过构造方法进行初始化,最近抽...

  • Dart 关于get & set-初始化操作

    get方法 面积:40 set方法 get方法面积:40set方法面积:24 初始化列表,动态赋值。实例化之前,给...

  • IDEA快捷键-自用

    编辑JAVA常用快捷键 实现get|set方法 Alt+Insert(get/set)创建构造方法 Alt+In...

  • Set接口

    介绍&常用方法 java.util.Set接口 extends Collection接口 Set接口的特点: 1....

  • java中list和set的区别是什么

    java中list和set的区别是什么 List方法与set方法的区别有: 1、重复对象 list方法可以允许重复...

  • 14 Java Set遍历的2种方法

    Java Set遍历的2种方法 Iterator迭代遍历

  • java中List去重

    方法一、使用Set集合特性 方法二、使用java8 stream api

网友评论

      本文标题:Java Set的初始化方法

      本文链接:https://www.haomeiwen.com/subject/gomwdhtx.html