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"}); }

浙公网安备 33010602011771号