《JAVA集合试题库培训讲学》由会员分享,可在线阅读,更多相关《JAVA集合试题库培训讲学(27页珍藏版)》请在金锄头文库上搜索。
1、JAVA集合试题库精品文档集合一、第一模块:知识点讲解图解集合Iterator Collection MapListIterator List Set HashMap TreeMap LinkedHashMap ArrayList LinkList HashSet TreeSet CollectionsArrays LinkedHashSet Comparable comparator1、集合的由来:我们学的语言是面向对象的语言,为了方便对多个对象进行操作,我们就必须把对象存储。而要存储多个对象,就不能是一个基本变量,而应该是一个容器类型的变量。这样就引入了集合。*以前接触过得容器:数组、St
2、ringBuffer等由于StringBuffer的结果是一串字符,不一定能满足我们的要求,所以我们只能选择数组,这就是对象数组。而对象数组不能适应变化的需求,因为数组的长度是固定。2、数组和集合的区别 长度区别 集合的长度可变 数组长度不可变 内容区别 集合可以存储不同类型的元素 数组存储的是同一种类型的元素 元素的数据类型问题 数组可以存储基本数据类型也可以存储引用数据类型集合只能存储引用类型 针对不同的需求,Java提供了不同的集合类,这多个集合的数据结构不同 *数据结构:数据的存储方式Java提供的多种集合类,他们的数据结构不同,但是,他们肯定有共性的内容(存储、获取、判断等)。通过不
3、断的向上提取,我们就能够得到一个集合的继承体系结构图。把上面这段话转化为图形的形式: collection List SetArrayList Vector LinkedList HashSet TreeSet 通过这个图可以清楚的理解集合现在我们从最低层开始学习 一、Collection(接口 Java.util ) 1、功能:添加 boolean add(Object obj) 添加一个元素 boolean addAll(Collection c)添加一个集合的元素 :删除 void clear() 移除所有元素 boolean remove(Object obj) 移除一个元素 bool
4、ean removeAll(Collection c)移除一个集合的元素:判断 boolean cotains(Object o)判断集合中是否包含指定元素 boolean containsAll(Collection c)判断集合中是否包含指定集合Collection c1=new ArrayList();c1.add(hello);c1.add(java);c1.add(world);Collection c2=new ArrayList();c2.add(a);c2.add(c);c2.add(world);System.out.println(containsAll:+c1.conta
5、insAll(c2);System.out.println(c1);System.out.println(c2); 打印结果:containsAll:falsec1hello, java, worldc2a, c, world boolean isEmpty() 判断是否是空获取 Iterator iterator()长度 int size()交集功能(了解) boolean retainAll(Collection c)交集 两个集合中都有的元素,返回值的意思? 假设有两个集合A,B。A对B做交集,最终存在A中,B不变,返回值表示的是A是否发生过改变。 Collection c1=new A
6、rrayList(); c1.add(hello); c1.add(java); c1.add(world); Collection c2=new ArrayList(); c2.add(a); c2.add(c); c2.add(world); System.out.println(retainAll:+c1.retainAll(c2); System.out.println(c1:+c1); System.out.println(c2:+c2); 打印结果: retainAll:truec1:worldc2:a, c, world 把集合转成数组 Object toArray()注意:*通
7、过测试得出的一些结论 removeAll():只要有一个被移除就叫移除 containsAll():只有包含所有的元素才叫包含 retainsAll():谁调用谁变,没有交集元素,那个集合就变为空。返回值的含义就是有集合变了就返回true,否则返回false。2、创建Collection对象 Collection c=new ArrayList();/因为Collection是接口,并且它没有直接实现类,而ArrayList是其子接口,通过测试,可以看出它重写了toString()方法,直接输出打印的是,ArrayList集合里面的元素可以重复 3、集合的遍历把集合转成数组,可以实现集合的遍历
8、/创建对象 Collection c=new ArrayList(); c.add(“hello”); c.add(“world”); c.add(“java”);/遍历(toArray() Object objs=c.toArray(); for( int x=0;xobjs.length;x+) System.out.println(objsx);/但是要想得到个字符串的长度,则需要向下转型String s=(String)objsx;System.out.println(s.length(); Iterator迭代器 /创建对象 Collection c=new ArrayList();
9、 c.add(“hello”); c.add(“world”); c.add(“java”); /遍历 Iterator it=c.iterator(); while(it.hasNext() String s=(String)it.next();/next()的返回值是 System.out.println(s);另一种方式改进,for循环改进for(Iterator it=c.iterator();it.hasNext();) String s=(String)it.next(); System.Out.println(s); 4、迭代器 是遍历集合的一种方式。迭代器依赖于集合而存在。 迭
10、代器的方法 next(),hasNext() 5、集合的使用步骤 创建集合对象 创建元素对象 把元素添加到集合 遍历集合 通过集合对象获取迭代器对象 通过迭代器对象的hasNext()方法判断是否还有下一个元素 通过迭代器对象的next()方法获取元素,并移动到下一个位置 *迭代器为什么不定义成一个类,而是一个接口假设迭代器是一个类,这样我们就可以创建该类的对象,调用该类的方法来实现集合的遍历。但是Java中提供了很多的集合类,这些集合类的数据结构是不同的,所以,存储方式和遍历方式不同,最终,就没有定义迭代器类而无论是哪种集合,你都应该具备获取元素的操作,并且,最好具有判断功能,这样,在获取前
11、,先判断就不容易出错,也就是说,判断功能和获取功能是一个集合所具备的,而每种集合的方式又不太一样,所以我们把这两个功能给取出来并不提供具体实现类,这种方式就是接口。那么真正的具体实现类在哪呢?在真正的具体的子类中,以内部类的方式体现。 二、List集合(Collection的子类) 1、List集合的特有功能 添加功能 void add(int index,Object elment);在指定位置添加元素/创建对象List list=new ArrayList();list.add(hello);list.add(world); list.add(java); list.add(4,javaee);System.out.print(list:+list);报错:IndexOutOfBoundsExc