day12
一、请简述集合框架。
集合是单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List
和java.util.Set
。其中,List
的特点是元素有序、元素可重复。Set
的特点是元素无序,而且不可重复。List
接口的主要实现类有java.util.ArrayList
和java.util.LinkedList
,Set
接口的主要实现类有java.util.HashSet
和java.util.TreeSet
。
二、给定以下代码,请定义方法listTest()统计集合中指定元素出现的次数,如"a": 2,“b”: 2,"c" :1, “xxx”:0。
package com.ben.www; import java.util.ArrayList; import java.util.List; public class Demo2 { static void listTest(List<String> arrayList,String val){ int a=0; for (String list:arrayList) { if (list.equals(val)){ a++; } } System.out.println(val+":"+a); } public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.add("a"); list.add("d"); list.add("e"); list.add("b"); list.add("a"); list.add("c"); list.add("xxx"); list.add("a"); list.add("b"); list.add("c"); list.add("xxx"); listTest(list,"a"); listTest(list,"b"); listTest(list,"c"); listTest(list,"xxx"); } }
三、定义一个方法,要求此方法把int数组转成存有相同元素的集合(集合里面的元素是Integer),并返回。
package com.ben.www; import java.util.ArrayList; import java.util.List; public class Demo3 { static ArrayList zhuan(int[] list){ ArrayList<Integer> arr1=new ArrayList<Integer>(); for (Integer val:list) { arr1.add(val); } return arr1; } public static void main(String[] args) { int[] arr= {1,5,3,6,73,4}; System.out.println(zhuan(arr)); } }
四、定义一个集合,并把集合(集合里面的元素是Integer)转成存有相同元素的数组,并将结果输出在控制台。(可以使用Object[]数组类型接收转换的数组)
package com.ben.www; import java.util.ArrayList; public class Demo4 { public static void main(String[] args) { Integer[] arr={1,54,3,6,1,46,57}; ArrayList<Object> arrlist=new ArrayList<Object>(); for (Integer arr1:arr ) { arrlist.add(arr1); } System.out.println(arrlist); } }
五、定义一个方法listTest(ArrayList al, String s),要求使用contains()方法判断al集合里面是否包含s。
package com.ben.www; import java.util.ArrayList; public class Demo5 { static boolean listTest(ArrayList a1, String s){ return a1.contains(s); } public static void main(String[] args) { ArrayList a1=new ArrayList(); a1.add("a"); a1.add("r"); a1.add("e"); a1.add("s"); a1.add("w"); if (listTest(a1,"ss") == true) { System.out.println("包含有"); }else { System.out.println("没有包含"); } } }
六、请简述迭代器的实现原理
package com.ben.www; public class Demo6 { /* * 在Java中遍历List时会用到Java提供的Iterator,Iterator十分好用,原因是: 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。 (2) 使用next()获得序列中的下一个元素。 (3) 使用hasNext()检查序列中是否还有元素。 (4) 使用remove()将迭代器新返回的元素删除。 * */ }
七、定义一个方法listTest(ArrayList al, Integer s),要求返回s在al里面第一次出现的索引,如果s没出现过返回-1。
package com.ben.www; import java.util.ArrayList; public class Demo7 { static int listTest(ArrayList a1, Integer s){ return a1.indexOf(s); } public static void main(String[] args) { ArrayList arr=new ArrayList(); arr.add(3); arr.add(5); arr.add(6); arr.add(1); arr.add(7); System.out.println(listTest(arr,11)); } }