LinkedHashset集合特点:底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的存储顺序),保证元素有序
根据hashCode的值来决定元素的存储位置,但同时使用链表维护元素的存储位置;
遍历LinkedHashSet的元素时,按照添加元素的顺序来进行;
LinkedHashset继承了hashset集合
HashSet
HashSet<String> set = new HashSet<>(); 无序,不允许重复 set.add("www"); set.add("abc"); set.add("abc"); set.add("itcast"); System.out.println(set);
LinkedHashset
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>(); linkedHashSet.add("www"); linkedHashSet.add("abc"); linkedHashSet.add("abc"); linkedHashSet.add("itcast"); System.out.println(linkedHashSet); 有序,不允许重复
可变参数:
可变参数:是JDK1.5之后出现的新特性使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数.
使用格式:定义方法时使用修饰符返回值类型方法名(数据类型...变量名){}可变参数的原理:
可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数传递的参数个数,可以是0个(不传递),1,2...多个
举例:
public static void main(String[] args) { int i = add(10,20); System.out.println(i); } public static int add(int...arr){ System.out.println(arr); System.out.println(arr.length); int sum = 0; for (int i:arr){ sum+=i; } return sum; }
可变参数的特殊(终极)写法
public void methodA(String str,Integer... is){ } public void methodA(String str,String... strs){ } public static void main(String[] args) { Client client = new Client(); client.methodA("China", 0); client.methodA("China", "People"); client.methodA("China"); client.methodA("China",null); }
public static void test(String... args) { for(String arg : args) { System.out.println(arg); } } public static void main(String[] args) { test(); test("a"); test("a","b"); test(new String[] {"a", "b", "c"}); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)