第7章--常用实用类.doc
精品文档,仅供学习与交流,如有侵权请联系网站删除第7章 常用实用类实验1 比较日期的大小2模板代码 DateExample.javaimport java.util.*;public class DateExample public static void main(String args ) Scanner read=new Scanner(System.in); System.out.println("输入第一个日期的年份:"); int yearOne=read.nextInt( ); System.out.println("输入该年的月份:"); int monthOne=read.nextInt( ); System.out.println("输入该月份的日期:"); int dayOne=read.nextInt( ); System.out.println("输入第二个日期的年份:"); int yearTwo=read.nextInt( ); System.out.println("输入该年的月份:"); int monthTwo=read.nextInt( ); System.out.println("输入该月份的日期:"); int dayTwo=read.nextInt( ); Calendar calendar = Calendar.getInstance(); /初始化日历对象 calendar.set(yearOne,monthOne,dayOne); / 将calendar的时间设置为yearOne年monthOne月dayOne日 long timeOne=calendar.getTimeInMillis(); / calendar表示的时间转换成毫秒 calendar.set(yearTwo,monthTwo,dayTwo); / 将calendar的时间设置为yearTwo年monthTwo月dayTwo日 long timeTwo=calendar.getTimeInMillis(); / calendar表示的时间转换成毫秒 Date date1=new Date(timeOne); / 用timeOne作为参数构造date1 Date date2=new Date(timeTwo); / 用timeTwo作为参数构造date2 if(date2.equals(date1) System.out.println("两个日期的年、月、日完全相同"); else if(date2.after(date1) System.out.println("您输入的第二个日期大于第一个日期"); else if(date2.before(date1) System.out.println("您输入的第二个日期小于第一个日期"); long 相隔天数=(timeTwo-timeOne)/(1000*60*60*24); / 计算两个日期相隔天数 System.out.printf("%d年%d月%d日和%d年%d月%d日相隔%d天",yearOne,monthOne,dayOne, yearTwo,monthTwo,dayTwo, 相隔天数);实验2 随机布雷2模板代码 MineExample.javaimport java.util.*;class Block String name; boolean boo=false; public void setName(String name) this.name=name;/ 将参数name传值给成员变量 public String getName() return name; / 返回成员变量name boolean isMine( ) return boo; / 返回成员变量boo public void setBoolean(boolean boo) this.boo=boo; / 将参数boo传值给成员变量boopublic class MineExample public static void main(String args ) int mine=25; Block block =new Block88; for(int i=0;i<8;i+) for(int j=0;j<8;j+) blockij=new Block( ); LinkedList<Block> list=new LinkedList<Block>(); / 创建list for(int i=0;i<8;i+) for(int j=0;j<8;j+) list.add(blockij); /将blockij添加到list while(mine>=0) int size=list.size(); / 返回list中节点个数 int randomIndex=(int)(Math.random( )*size); Block b=list.get(randomIndex); / 返回list中索引值为randomIndex的节点中的对象 b.setName(""); b.setBoolean(true); list.remove(randomIndex); / list删除索引值为randomIndex的节点 mine-; for(int i=0;i<8;i+) for(int j=0;j<8;j+) if(blockij.isMine() ) else int mineNumber=0; for(int k=Math.max(i-1,0);k<=Math.min(i+1,7);k+) for(int t=Math.max(j-1,0);t<=Math.min(j+1,7);t+) if(blockkt.isMine() ) mineNumber+; blockij.setName(""+mineNumber); for(int i=0;i<8;i+) for(int j=0;j<8;j+) System.out.printf("%2s",blockij.getName() ); System.out.printf("%n");实验3 使用TreeSet排序2模板代码 TreeSetExample.javaimport java.util.*;public class TreeSetExample public static void main(String args ) TreeSet<Student> mytree=new TreeSet<Student>(); for(int i=0;i<5;i+) Scanner read=new Scanner(System.in); System.out.println("学生的姓名:"); String name=read.nextLine( ); System.out.println("输入分数(整数):"); int score=read.nextInt( ); mytree.add(new Student(score,name); / 向mytree添加Student对象 Iterator<Student> te=mytree.iterator();/ mytree返回Iterator对象 while(te.hasNext() / 判断te中是否存在元素 Student stu=te.next(); / 返回te中的下一个元素 System.out.println(""+stu.name+" "+stu.english);class Student implements Comparable int english=0; String name; Student(int e,String n) english=e;name=n; public int compareTo(Object b) Student st=(Student)b; return (this.english-st.english);实验4 使用TreeMap排序2模板代码 TreeMapExample.javaimport java.util.*;class MyKey implements Comparable int number=0; MyKey(int number) this.number=number; public int compareTo(Object b) MyKey st=(MyKey)b; if(this.number-st.number)=0) return -1; else return (this.number-st.number);class Student String name=null; int englishScore,mathScore; Student(int e,int m,String name) englishScore=e; mathScore=m; this.name=name;public class TreeMapExample public static void main(String args ) TreeMap<MyKey,Student> treemap1=new TreeMap<MyKey,Student>(); TreeMap<MyKey,Student> treemap2=new TreeMap<MyKey,Student>(); TreeMap<MyKey,Student> treemap3=new TreeMap<MyKey,Student>(); for(int i=1;i<=5;i+) Scanner read=new Scanner(System.in); System.out.println("学生的姓名:"); String name=read.nextLine( ); System.out.println("输入英语分数(整数):"); int englishScore=read.nextInt( ); System.out.println("输入数学分数(整数):"); int mathScore=read.nextInt( ); Student stu=new Student(englishScore,mathScore,name); treemap1.put(new MyKey(stu.englishScore),stu); / 向treemap1添加“键/值”对,其中值为stu,要求按英语成绩排序 treemap2.put(new MyKey(stu.mathScore),stu); / 向treemap2添加“键/值”对,其中值为stu,要求按数学成绩排序 treemap3.put(new MyKey(stu.englishScore+stu.mathScore),stu); / 向treemap3添加“键/值”对,其中值为stu,要求按总分成绩排序 System.out.println("按英语成绩排序:"); Collection<Student> collection=treemap1.values(); / treemap1返回实现Collection接口的对象 Iterator<Student> iter=collection.iterator(); / collection返回的Iterator while(iter.hasNext() / 判断iter中是否存在元素 Student te =iter.next(); / 返回iter中的下一个元素 System.out.printf("姓名:%s,英语:%d,数学:%dn",te.name,te.englishScore,te.mathScore); System.out.println("按数学成绩排序:"); collection=treemap2.values(); / treemap2返回实现Collection接口的对象 iter=collection.iterator(); / collection返回的Iterator while(iter.hasNext() / 判断iter中是否存在元素 Student te =iter.next(); / 返回iter中的下一个元素 System.out.printf("姓名:%s,数学:%d,英语:%dn",te.name,te.mathScore,te.englishScore); System.out.println("按总分排序:"); collection=treemap3.values(); / treemap3返回实现Collection接口的对象 iter=collection.iterator(); / collection返回的Iterator while(iter.hasNext() / 判断iter中是否存在元素 Student te =iter.next(); / 返回iter中的下一个元素 System.out.printf("姓名:%s,总分:%dn",te.name,te.englishScore+te.mathScore);【精品文档】第 5 页