LinkedHashSet集合、可变参数

LinkedHashSet集合

具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到集合中的顺序(插入顺序)进行迭代

LinkedHashSet集合的特点:

    底层是个哈希表(数组+链表/红黑数)+链表:多了一条链子(记录元素的储存顺序)

 案例:

  


public static void main(String[] args) {
/*有序
* 不重复
* */
LinkedHashSet<String> set = new LinkedHashSet<>();
set.add("ccc");
set.add("www");
set.add("abc");
set.add("abc");
set.add("111");
set.add("333");
System.out.println(set);
/*无序
* 不重复
* */
System.out.println("==============");
HashSet<String> set1 = new HashSet<>();
set1.add("ccc");
set1.add("www");
set1.add("abc");
set1.add("abc");
set1.add("111");
set1.add("333");
System.out.println(set1);


}
}

看输出:

  

 

 可变参数

  可变参数是jdk1.5之后h出现的新特性

 使用前提:

    当前方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用变参数

 使用格式:定义方法的时候使用

    修饰符 返回值类型 方法名(数据类型..遍历名){}

可变参数的原理:

    可变参数底层就是一个 数组,根据传递参数的个数不同,会创建不同长度的数组,来储存这些参数

    传递的参数个数,可以是0个(不传递)

案例:

  

public class aa {
public static void main(String[] args) {
int aa = aa(10, 20, 1, 30, 4);
System.out.println(aa);
}
public static int aa(int...aa){
int a =0;
for (int i : aa) {
a+=i;
}
return a;
}
}

这样,我们传入多个数 就不用单个定义方法啦

 

    

posted @ 2022-07-06 15:44  一位程序袁  阅读(42)  评论(0编辑  收藏  举报