还剩6页未读,继续阅读
文本内容:
第10章课后习题参考答案
1.有三个雇员,其信息如下对雇员信息进行如下操作1创建一个ArrayList对象,将这三个雇员信息存储到这个ArrayList对象中2将ArrayList对象中的元素显示一遍3在“刘莉莉”前插入一个新雇员,其信息为张芳副经理384200插入后将ArrayList对象中的元素再显示出来4从ArrayList对象中删除“刘莉莉”后再将其中的元素显示出来答importjava.util.ArrayList;importjava.util.*;classEmployee{Stringname;Stringoccupation;intage;intsalary;publicEmployeeStringnStringointageintsname=n;occupations;age二thisage;salary=s;publicStringgetNamereturnname;publicvoidoutputSystem.out.printlnname+”_”+occupation+“_+age+”_”+salary;publicclassexercise10_01{publicstaticvoidmainString[]argsScannerreader=newScannerSystem.in;Stringnmoccu;intagesalary;ArrayListEmployeeemployeeList=newArrayListEmployee;Employeee;e=newEmployee“王振“经理”405000;employeeList.adde;e=newEmployee文lj莉莉”J出纳”333200;employeeList.adde;e二newEmployee“王红J秘书”252800;employeeList.adde;Iteratorit=employeeList.iterator;whileit.hasNexte=Employeeit.next;e.output;System.out.println;forinti=0;iemployeeList.size;i++ifEmployeeemployeeList.get⑴.getName.equals“刘莉莉”e=newEmployee张芳J副经理”384200;employeeList.addie;break;it=employeeList.iterator;whileit.hasNexte=Employeeit.next;e.output;System.out.println;forinti=0;iemployeeList.size;i++ifEmployeeemployeeList.get⑴.getName.equals刘莉莉employeeList.removei;break;it=employeeList.iterator;whileit.hasNexte=Employeeit.next;e.output;}.定义注解类用于描述“水果”的信息,水果的信息有名称、颜色、经销商包括经销商编号和名称、供货商包括供货商编号、姓名和地址,用自定义的水果注解类标注水果,并能从注解中提取水果信息答importjava.Iang.reflect.*;importjava.lang.annotation.*;@RetentionRetentionPolicy.RUNTIME〃元注解,运行时保留注解,必须有,否则注解值读不出@interfaceFruitDealer〃定义注解〃定义注解元素,都有缺省值publicStringcodedefaultn001n;publicStringnamedefault”旺旺生鲜超市”;@RetentionRetentionPoIicy.RUNTIME@interfaceFruitSupplier//定义注解publicStringnamedefault”南国梨庄园”;publicStringcodedefault002”;publicStringaddressdefault鞍山;@RetentionRetentionPolicy.RUNTIME@interfaceFruitColor〃定义注解publicStringvaluedefault绿色”;@RetentionRetentionPolicy.RUNTIME@interfaceFruitName//定义注解{publicStringvaluedefault”苹果”;classFruit@FruitName“香蕉”publicStringname;@FruitColor黄色publicStringcolor;〃为域dealer加注解,给部分元素赋值,其余用缺省值〃如果注解元素都用缺省值,则直接写@尸疝1口匕@附@FruitDealername=n果果code=“201publicStringdealer;@FruitSuppliername=莱阳梨”code=222address=11l东”publicStringsupplier;//域有注解publicvoidsetDealerStringmdealer=m;publicStringgetDealerreturndealer;publicvoidsetSupplierStringsupplierthis.supplier=supplier;publicStringgetSupplierreturnsupplier;publicvoidsetNameStringnamethis.name二name;publicStringgetNamereturnname;publicvoidsetColorStringcolorthis.color=color;publicStringgetColorreturncolor;publicclassexercise10_02publicstaticvoidmainStringargs[JSystem.out.printlnreadAnnotationFruit.class;〃读注解信息privatestaticStringreadAnnotationClassaClassStringdealer^”经销商”;Stringsupplier”供货商n;Stringname=名字”;Stringcolor=颜色”;Fieldfields口二aClass.getDeclaredFields;〃获取Fruit类的所有字段forFieldaField:fields//对每一个字段判断〃字段的注解是FruitDealer类型ifaField.isAnnotationPresentFruitDealer.classFruitDealeraDealer;//声明一个注解变量〃调用getAnnotation方法获得在aField域上的注解“实例”aDealer=FruitDealeraField.getAnnotationFruitDealer.class;dealer+=aDealer.code+ndealer+=aDealer.name+u\nn;〃字段的注解是FruitSupplier类型elseifaField.isAnnotationPresentFruitSupplier.classFruitSupplieraSupplier;aSupplier=FruitSupplieraField.getAnnotationFruitSupplier.class;suppiier4-=aSupplier.name+nn;supplier+=aSupplier.code+n;supplier+=aSupplier.address+n\nn;elseifaField.isAnnotationPresentFruitName.class{FruitNameaName;aName=FruitNameaField.getAnnotationFruitName.class;name+二aName.value+\n”;elseifaField.isAnnotationPresentFruitColor.classFruitColoraColor;aColor=FruitColoraField.getAnnotationFruitColor.c!ass;color+=aColor.value+H\nn;returndealer+supplier+name+color;.利用反射机制,显示出String类和Integer类中都有哪些域和方法答importjava.lang.reflect.*;publicclassexercise10_03publicstaticvoidmainStringargs[]throwsException〃获得一个表示String类的Class对象Classobj=Class.forNameujava.lang.Stringn;〃获取String类中的构造方法Constructorconstructor[]=obj.getConstructors;System.out.printlnnString类中的构造方法:;forConstructorcon:constructor〃将构造方法输出System.out.printlncon.toString;System.out.println;〃获取String类中的所有域Fieldfield[]=obj.getDeclaredFields;System.out.printlnnString类中的域;forFieldf:fieldSystem.out.printlnf.toStringO;System.out.println;〃获取String类中的所有方法Methodmethod[]=obj.gelDeclaredMethods;System.out.printlnHString类中的方法”;forMethodm:methodSystem.out.printlnm;System.out.println;〃获取Integer类中的构造方法obj=Class.forNameHjava.lang.IntegerH;〃获取Integer类中的构造方法constructor=obj.getConstructors;System.out.printlnHInteger类中的构造方法”;forConstructorcon:constructor〃将构造方法输出System.out.printlncon.toStringO;System.out.println;〃获取Integer类中的所有域field=obj.getDeclaredFields;System.out.printlnMInteger类中的域:;forFieldf:fieldSystem.out.printlnf.toStringO;System.out.println;〃获取Integer类中的所有方法method=obj.getDeclaredMethods;System.out.printlnHInteger类中的方法;forMethodm:methodSystem.out.printlnm;System.out.println;.用LinkedList类实现判断一个字符串是否是“回文”答importjava.util.LinkedList;importjava.util.*;publicclassexercise10_04{publicstaticvoidmainStringargsULinkedListlist=newLinkedList;//创建一个LinkedList对象listScannerreadei-newScannerSystem.in;charcheadctail;Stringstr=reader.next;forinti=0;istr.length;i++〃将obj对象加入到list中list.addstr.charAti;whilelist.sizelchead=charlist.pollFirst;〃删除表头元素ctail=charlist.poHLast;〃删除表尾元素ifchead!=ctailSystem.out.printlnNOn;return;System.out.printlnnYESn;.利用流操作,实现对输入的12个字符串进行处理,要求对其中的“a”字母开头的、长度大于2的字符串进行排序,然后输出答importjava.util.*;importjava.util.stream.Stream;importjava.util.stream.Collectors;publicclassexercise10_05publicstaticvoidmainString[]argsString!1words二newString!12];Scannerreader=newScannerSystem.in;forinti=0;i12;i++words[i]=reader.next;StreamStringstream=Stream.ofwords;ListStringlist=stream.filteri-i.startsWithMan.filteri-i.length
2.sorted.distinct.collectCoHectors.toList;//把流中元素保存到列表中System.out.printlnlist;姓名职务年龄工资王振经理405000刘莉莉出纳333200王红秘书252800。