JavaSE(07)(数组高级操作及日期格式)

来源:互联网 发布:淘宝网人工客服热线 编辑:程序博客网 时间:2024/05/17 23:40
冒泡排序:package zz.itheima.arrays;public class BubbleSort {    //冒泡排序    public static void main(String[] args) {        int score[] = {67, 69, 75, 87, 89, 90, 99, 100};                 for (int i = 0; i < score.length -1; i++){    //最多做n-1趟排序                      for(int j = 0 ;j < score.length - i - 1; j++){    //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)                           if(score[j] < score[j + 1]){    //把小的值交换到后面                               int temp = score[j];                               score[j] = score[j + 1];                               score[j + 1] = temp;                          }                      }                              System.out.print("第" + (i + 1) + "次排序结果:");                  for(int a = 0; a < score.length; a++){                      System.out.print(score[a] + "\t");                  }                  System.out.println("");              }                  System.out.print("最终排序结果:");                  for(int a = 0; a < score.length; a++){                      System.out.print(score[a] + "\t");             }          }}运行结果:第1次排序结果:69  75  87  89  90  99  100 672次排序结果:75  87  89  90  99  100 69  673次排序结果:87  89  90  99  100 75  69  674次排序结果:89  90  99  100 87  75  69  675次排序结果:90  99  100 89  87  75  69  676次排序结果:99  100 90  89  87  75  69  677次排序结果:100 99  90  89  87  75  69  67  最终排序结果:100  99  90  89  87  75  69  67选择排序:package zz.itheima.arrays;public class SelectSort {    /**     * 选择排序     * @param args     */    public static void main(String[] args) {        int[] arr={3,5,1,7,6};        //从小到大        for(int j=0;j<arr.length-1;j++)        {            for (int i = j+1; i < arr.length; i++) {                //第1轮    arr[0] arr[i]                //第2轮   arr[1] arr[i]                if(arr[j]>arr[i])                {                    int temp=arr[j];                    arr[j]=arr[i];                    arr[i]=temp;                }            }        }        for (int i = 0; i < arr.length; i++) {            System.out.println(arr[i]);        }    }}运行结果:13567顺序查找:package zz.itheima.arrays;public class OrderSearch {    /**     * 顺序查找     * @param args     */    public static void main(String[] args) {        int[] arr={3,5,1,7,6};        //顺序查找     找7        boolean flag=false;        for (int i = 0; i < arr.length; i++) {            if(arr[i]==7)            {                System.out.println("存在");                flag=true;                break;            }        }        if(flag==false)            System.out.println("不存在");    }}运行结果:存在二分折半查找:package zz.itheima.arrays;public class BinarySearch {    /**     * 二分折半查找     * @param args     */    public static void main(String[] args) {    int[] arr={1,2,3,4,5,6,7,8,9};    //必须有序        int left=0;        int right=arr.length-1;        while (left<=right) {            //找mid            //1.mid==目标    找到了            //2.mid<目标  (缩小包围圈 left  right)            //3.mid>目标(缩小包围圈 left  right)            int mid=(left+right)/2;            if(arr[mid]==8)            {                System.out.println("存在");                break;            }            if(arr[mid]<10)            {                left=mid+1;            }            if(arr[mid]>10)            {                right=mid-1;            }        }        if(left>right)            System.out.println("不存在");    }}运行结果:存在测试程序运行时间package zz.itheima.arrays;public class TestSystem {    //测试程序执行了多长时间    public static void main(String[] args) {    int[] arr={3,5,1,7,6,9,10,67,34,55,99};        long begin=System.currentTimeMillis();        //从小到大        for(int j=0;j<arr.length-1;j++)        {            for (int i = 0; i < arr.length-1-j; i++) {                if(arr[i]>arr[i+1])                {                    int temp=arr[i];                    arr[i]=arr[i+1];                    arr[i+1]=temp;                }            }        }        long end=System.currentTimeMillis();        System.out.println(end-begin);    }}数字格式化:package zz.itheima.arrays;import java.text.NumberFormat;public class TestNumberFormat {    public static void main(String[] args) {        double a=10.98;        System.out.println(a*1.1);        NumberFormat nf=NumberFormat.getInstance();        nf.setMaximumFractionDigits(1);//设置某个数的小数部分中所允许的最大数字位数        System.out.println(nf.format(a*1.1));    }}运行结果:12.07800000000000112.1日期格式化:package zz.itheima.arrays;import java.text.DateFormat;import java.util.Date;import java.util.Scanner;public class TestDateFormat {    public static void main(String[] args) throws Exception {        //public static final DateFormat getDateInstance(),获取日期格式器,该格式器具有默认语言环境的默认格式化风格。        Date now=new Date();        System.out.println(now);        DateFormat df1=DateFormat.getDateInstance();        String s=df1.format(now);        System.out.println(s);//      public static final DateFormat getDateInstance(int style),获取日期格式器,该格式器具有默认语言环境的指定格式化风格。        DateFormat df2=DateFormat.getDateInstance(DateFormat.SHORT);        s=df2.format(now);        System.out.println(s);////      public static final DateFormat getDateTimeInstance(),获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。        DateFormat df3=DateFormat.getDateTimeInstance();        s=df3.format(now);        System.out.println(s);//      public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle),获取日期/时间格式器,               // 该格式器具有默认语言环境的指定日期和时间格式化风格。        DateFormat df4=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.SHORT);        s=df4.format(now);        System.out.println(s);//      public static final DateFormat getTimeInstance(),获取时间格式器,该格式器具有默认语言环境的默认格式化风格。////      public static final DateFormat getTimeInstance(int style),获取时间格式器,该格式器具有默认语言环境的指定格式化风格。////      public final String format(Date date)将一个 Date对象格式化为日期/时间字符串。//      public Date parse(String source),将字符串解析为Date对象。字符串中日期时间格式必须跟格式化器的风格一致        Scanner sc=new Scanner(System.in);        System.out.println("请输入你的生日:");        String birString=sc.nextLine();        DateFormat df5=DateFormat.getDateInstance();        Date birDate=df5.parse(birString);          System.out.println(birDate);    }}运行结果:Thu Nov 26 17:03:42 CST 20152015-11-2615-11-262015-11-26 17:03:4220151126日 星期四 下午5:03请输入你的生日:时间测试:package zz.itheima.arrays;import java.text.DateFormat;import java.util.Date;public class TestDate {    public static void main(String[] args) {        Date now=new Date();        System.out.println(now);        System.out.println(now.getTime());        System.out.println(DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.SHORT).format(now));    }}运行时间:Thu Nov 26 17:04:40 CST 2015144852868074920151126日 星期四 下午5:04测试日历:package zz.itheima.arrays;import java.util.Calendar;import java.util.Date;public class TestCalender {    //日历类测试    public static void main(String[] args) {//      public static Calendar getInstance(),使用默认时区和语言环境获得一个日历对象(Calendar类是抽象类)        Calendar c=Calendar.getInstance();        System.out.println(c);//      public int get(int field)返回日历对象中给定字段的值        System.out.println(c.get(Calendar.HOUR));//      public void set(int field, int value),设置日历对象中的给定字段的值        c.set(Calendar.YEAR,2015);//      public final Date getTime(),返回日历中的日期时间对象        Date d=c.getTime();        System.out.println(d);//      public final void setTime(Date date),设置日历中的日期时间对象    }}运行结果:java.util.GregorianCalendar[time=1448528724370,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2015,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=4,DAY_OF_MONTH=26,DAY_OF_YEAR=330,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=5,SECOND=24,MILLISECOND=370,ZONE_OFFSET=28800000,DST_OFFSET=0]5Thu Nov 26 17:05:24 CST 2015数组类进行测试:package zz.itheima.arrays;import java.util.Arrays;public class TestArrays {    /**     * 对数组类进行测试     * @param args     */    public static void main(String[] args) {//      public static void sort(xxx[]  a) ,对数组a进行升序排序        int[] arr={4,6,1,8,3,9};        Arrays.sort(arr);        for (int i = 0; i < arr.length; i++) {            System.out.print(arr[i]+" ");        }        System.out.println();//      public static int binarySearch(xxx[] a , xxx key),通过二分(折半)查找法搜索数组a中的key        int num=0;        int result=Arrays.binarySearch(arr, num);        System.out.println(result);//      public static xxx[] copyOf(xxx[] a , int newLength),通过复制数组a的newLength长度的数据到新数组        int[] temp=Arrays.copyOf(arr, 3);        for (int i = 0; i < temp.length; i++) {            System.out.print(temp[i]+" ");        }        System.out.println();//      public static xxx[] copyOfRange(xxx[] a , int from , int to),通过复制数组a的指定范围的数据到新数组        temp=Arrays.copyOfRange(arr, 2, 4);        for (int i = 0; i < temp.length; i++) {            System.out.print(temp[i]+" ");        }        System.out.println();//      public static boolean equals(xxx[] a1 , xxx[] a2),比较a1和a2两个数组是否一样        int[] arr2={4,6,1,8,3,9};        System.out.println(Arrays.equals(arr, arr2));//顺序不一样也不是同一个数组    }}运行结果:1 3 4 6 8 9 -11 3 4 4 6 false数组存放对象:package zz.itheima.arrays;public class TestArray {    public static void main(String[] args) {        //数组可以是自定义类型,数组存放了对象        int[] arr={4,2,8,1,7};        Book[] arrBooks=new Book[3];        arrBooks[0]=new Book("adf",100.10);        arrBooks[1]=new Book("aasddf",10560.10);        arrBooks[2]=new Book("aasdfdf",10560.10);        //数组位置交换        int temp=arr[1];        arr[1]=arr[3];        arr[3]=temp;    }}两个日期时间差:package zz.itheima.arrays;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Demo2 {      /**      * 两个日期时间差     * @param args      * @throws ParseException       */      public static void main(String[] args) throws ParseException {          // TODO Auto-generated method stub          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");          Date d1=sdf.parse("2015-07-13 10:10:10");          Date d2=sdf.parse("2015-11-26 00:00:00");          System.out.println(daysBetween(d1,d2));          System.out.println(daysBetween("2015-07-13 10:10:10","2015-11-26 00:00:00"));      }      /**       * 计算两个日期之间相差的天数       * @param smdate 较小的时间      * @param bdate  较大的时间      * @return 相差天数      * @throws ParseException       */        public static int daysBetween(Date smdate,Date bdate) throws ParseException        {            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");          smdate=sdf.parse(sdf.format(smdate));          bdate=sdf.parse(sdf.format(bdate));          Calendar cal = Calendar.getInstance();            cal.setTime(smdate);            long time1 = cal.getTimeInMillis();                         cal.setTime(bdate);            long time2 = cal.getTimeInMillis();                 long between_days=(time2-time1)/(1000*3600*24);         return Integer.parseInt(String.valueOf(between_days));               }        /**     *字符串的日期格式的计算     */      public static int daysBetween(String smdate,String bdate) throws ParseException{          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");          Calendar cal = Calendar.getInstance();            cal.setTime(sdf.parse(smdate));            long time1 = cal.getTimeInMillis();                         cal.setTime(sdf.parse(bdate));            long time2 = cal.getTimeInMillis();                 long between_days=(time2-time1)/(1000*3600*24);         return Integer.parseInt(String.valueOf(between_days));         }  } 运行结果:136136固定格式日历:package zz.itheima.arrays;import java.util.Calendar;public class Demo1 {    public static void main(String[] args) {        // 练习:在控制台输出当前时间,格式为“2014-1-29 14:24:55”        Calendar c = Calendar.getInstance();//得到日历对象        //分别得到年月日和时分秒就可以了        int year=c.get(Calendar.YEAR);        int month=c.get(Calendar.MONTH)+1;        int day=c.get(Calendar.DAY_OF_MONTH);        int hour=c.get(Calendar.HOUR);        int minute=c.get(Calendar.MINUTE);        int sec=c.get(Calendar.SECOND);        System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minute+":"+sec);    }}运行结果:2015-11-26 5:9:7Book类:package zz.itheima.arrays;public class Book {    private String name;    private double price;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public double getPrice() {        return price;    }    public void setPrice(double price) {        this.price = price;    }    public Book(String name, double price) {        super();        this.name = name;        this.price = price;    }    public Book() {        super();    }}
0 0
原创粉丝点击