Java集合类实例解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Java集合类实例解析我们看一个简单的例子,来了解一下集合类的基本方法的使用:importjava.util.*;publicclassCollectionToArray{publicstaticvoidmain(String[]args){Collectioncollection1=newArrayList();//创建一个集合对象collection1.add(000);//添加对象到Collection集合中collection1.add(111);collection1.add(222);System.out.println(集合collection1的大小:+collection1.size());System.out.println(集合collection1的内容:+collection1);collection1.remove(000);//从集合collection1中移除掉000这个对象System.out.println(集合collection1移除000后的内容:+collection1);System.out.println(集合collection1中是否包含000:+collection1.contains(000));System.out.println(集合collection1中是否包含111:+collection1.contains(111));Collectioncollection2=newArrayList();collection2.addAll(collection1);//将collection1集合中的元素全部都加到collection2中System.out.println(集合collection2的内容:+collection2);collection2.clear();//清空集合collection1中的元素System.out.println(集合collection2是否为空:+collection2.isEmpty());//将集合collection1转化为数组Objects[]=collection1.toArray();for(inti=0;is.length;i++){System.out.println(s[i]);}}}运行结果为:集合collection1的大小:3集合collection1的内容:[000,111,222]集合collection1移除000后的内容:[111,222]集合collection1中是否包含000:false集合collection1中是否包含111:true集合collection2的内容:[111,222]集合collection2是否为空:true111222这里需要注意的是,Collection它仅仅只是一个接口,而我们真正使用的时候,确是创建该接口的一个实现类。做为集合的接口,它定义了所有属于集合的类所都应该具有的一些方法。如ArrayList(列表)类是集合类的一种实现方式。下面,我们看一个对于迭代器的简单使用:importjava.util.ArrayList;importjava.util.Collection;importjava.util.Iterator;publicclassIteratorDemo{publicstaticvoidmain(String[]args){Collectioncollection=newArrayList();collection.add(s1);collection.add(s2);collection.add(s3);Iteratoriterator=collection.iterator();//得到一个迭代器while(iterator.hasNext()){//遍历Objectelement=iterator.next();System.out.println(iterator=+element);}if(collection.isEmpty())System.out.println(collectionisEmpty!);elseSystem.out.println(collectionisnotEmpty!size=+collection.size());Iteratoriterator2=collection.iterator();while(iterator2.hasNext()){//移除元素Objectelement=iterator2.next();System.out.println(remove:+element);iterator2.remove();}Iteratoriterator3=collection.iterator();if(!iterator3.hasNext()){//察看是否还有元素System.out.println(还有元素);}if(collection.isEmpty())System.out.println(collectionisEmpty!);//使用collection.isEmpty()方法来判断}}程序的运行结果为:iterator=s1iterator=s2iterator=s3collectionisnotEmpty!size=3remove:s1remove:s2remove:s3还有元素collectionisEmpty!可以看到,Java的Collection的Iterator能够用来,:1)使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回集合序列的第一个元素。2)使用next()获得集合序列的中的下一个元素。3)使用hasNext()检查序列中是否元素。4)使用remove()将迭代器新返回的元素删除。需要注意的是:方法删除由next方法返回的最后一个元素,在每次调用next时,remove方法只能被调用一次.大家看,Java实现的这个迭代器的使用就是如此的简单。Iterator(跌代器)虽然功能简单,但仍然可以帮助我们解决许多问题,同时针对List还有一个更复杂更高级的ListIterator.您可以在下面的List讲解中得到进一步的介绍。我们看一个List的例子:importjava.util.*;publicclassListIteratorTest{publicstaticvoidmain(String[]args){Listlist=newArrayList();list.add(aaa);list.add(bbb);list.add(ccc);list.add(ddd);System.out.println(下标0开始:+list.listIterator(0).next());//next()System.out.println(下标1开始:+list.listIterator(1).next());System.out.println(子List1-3:+list.subList(1,3));//子列表ListIteratorit=list.listIterator();//默认从下标0开始//隐式光标属性add操作,插入到当前的下标的前面it.add(sss);while(it.hasNext()){System.out.println(nextIndex=+it.nextIndex()+,Object=+it.next());}//set属性ListIteratorit1=list.listIterator();it1.next();it1.set(ooo);ListIteratorit2=list.listIterator(list.size());//下标while(it2.hasPrevious()){System.out.println(previousIndex=+it2.previousIndex()+,Object=+it2.previous());}}}程序的执行结果为:下标0开始:aaa下标1开始:bbb子List1-3:[bbb,ccc]nextIndex=1,Object=aaanextIndex=2,Object=bbbnextIndex=3,Object=cccnextIndex=4,Object=dddpreviousIndex=4,Object=dddpreviousIndex=3,Object=cccpreviousIndex=2,Object=bbbpreviousIndex=1,Object=a用得最多的主要有Set,List,Map,Iterator这几个接口,Set和List接口都是Collection接口的子接口,有很多相同的地方,我们只是撑握了Collection接口的方法,Set和List的用法也就差不多了.Set和List的区别:1、Set是没有顺序的,不能放重复的数据(相同的数据)2、List是有顺序的,可以存放重复的数据(相同的数据)Set的实现类常用的主要有两个:HashSet、TreeSet我们可以把一类对象添加到集合中,并且按对象的某一个属性进行排序(客户化排序和自然排序)1、对TreeSet集进行客户化排序要求写一个类实现Comparator接口,并且重写其中的Compare方法例:客户化排序容易扩展,如果要按其它的属性排序,只需要重新写一个类实现Comparator接口就可以了,不需要修改原来的代码。classUsers{privateStringname;privateintid;publicUsers(Stringname,intid){this.name=name;this.id=id;}publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnname;}publicvoidsetId(intid){this.id=id;}publicintgetId(){returnid;}//这里重写了父类的toString方法publicStringtoString(){returnthis.name+\t+this.id+\t;}}//这个类实现Comparator接口,并且重写了其中的compare方法publicclassMyComparatorimplementsComparator{publicintcompare(Objecto1,Objecto2){Usersuser1=(Users)o1;Usersuser2=(Users)o2;if(user1.getIduser2.getId)return1;elseif(user1.getId==user2.getId)return0;return-1;}}classTestComparator{publicstaticvoidmain(Stringargs[]){TestComparator.test();}publicstaticvoidtest(){Setset=newTreeSet(newMyComparator());Usersuser1=newUsers(张三,17);Usersuser2=newUsers(李四,13);Usersuser3=newUsers(王五,19);Usersuser5=newUsers(王五,19);set.add(user1);set.add(user2);set.add(user3);set.add(user5);for(Objectobj:set){System.out.println(obj);}}}2、自然排序,将需要排序的那个类实现Comparable接口并且重写其中的compareTo方法例如下:classUsersimplementsComparable{privateStringname;privateintid

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功