java学习第十九天之API、Date、Calendar

来源:互联网 发布:迅雷淘宝充值卡号密码 编辑:程序博客网 时间:2024/06/05 09:09

Array

package cn.myapi.demo;public class ArrayDemo {    /**    * @param args    */    public static void main(String[] args) {    /*          int sum=add(4,5);        int sum1=add(4,5,6);    */          int[] arr={37,17,21,87};        int[] arr2={3,5};        int sum=add(arr);        int sum2=add(arr2);        System.out.println(sum);        System.out.println(sum2);        int sum3=add(6,7,8);        System.out.println(sum3);//调用可变参数    }/*    public static int add(int i, int j) {        return i+j;    }    *//*    public static int add(int i, int j,int k) {        return i+j+k;    }    *//*      //  简化版    public static int add(int[] arr) {        int sum=0;        for (int i = 0; i < arr.length; i++) {            sum+=arr[i];        }        return sum;    }*/      public static int add(int... arr) {        //...代表可变参数,还是数组  弊端add(int... arr,int x)报错  add(int x,int... arr) 运行   可变参数要求一定是最后一个参数        int sum=0;        for (int i = 0; i < arr.length; i++) {            sum+=arr[i];        }        return sum;    }}

Arrays

package cn.myapi.demo;import java.util.Arrays;import java.util.List;import javax.swing.SpringLayout.Constraints;public class ArraysDemo {    /**    * @param args    */    public static void main(String[] args) {        int[] arr={32,67,1,79,97};        System.out.println(arr);        System.out.println(Arrays.toString(arr));        String[] string={"add","sds","aadd"};        boolean ans=myContains(string, "add");        System.out.println(ans);        /*        发现集合中本身就有这个方法。contains()        将数组转成集合,就行了        用aslist就不用自己写myContains()        */        List<String> list=Arrays.asList(string);        //      list.add("ss");//java.lang.UnsupportedOperationException    注意:不能使用集合的增删方法。不能改变长度        System.out.println(list.contains("add"));    /*          如果数组中都是引用数据类型,转成集合是,数组元素直接作为集合元素        如果数组中都是基本数据类型,会将数组对象作为集合中的元素    */          int[] arrs={37,56,23,17};        List list2=Arrays.asList(arrs);        System.out.println(list2.get(0));    }    public static boolean myContains(String[] arr,String key) {        for (int i = 0; i < arr.length; i++) {            String string=arr[i];            if(string.equals(key))                return true;        }        return false;    }    public static <T> void swap(T[] arr, int i, int j) {        T temp=arr[i];        arr[i]=arr[j];        arr[j]=temp;    }}

Calendar

package cn.myapi.demo;import java.util.Calendar;public class CalendarDemo {    /**    * @param 演示日历 Calendar    */    public static void main(String[] args) {        Calendar calendar=Calendar.getInstance();        System.out.println(calendar);        System.out.println("------------------------------");        calendar.set(Calendar.YEAR, 2016);        calendar.set(2016, 5, 22);//      日期的偏移        calendar.add(Calendar.YEAR, -4);        calendar.add(Calendar.MONTH, 5);//      任意一年而又有多少天,三月一日的前一天就是        int year=2012;        calendar.set(year,3,1);        calendar.add(Calendar.DAY_OF_MONTH, -1);        showDate(calendar);    }    private static void showDate(Calendar calendar) {       //      获取其中所需日期        int year=calendar.get(Calendar.YEAR);        int month=calendar.get(Calendar.MONTH);        int day=calendar.get(Calendar.DAY_OF_MONTH);        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));        String week=getWeek(calendar.get(Calendar.DAY_OF_WEEK));        System.out.println(week);        System.out.println(year+"年"+month+"月"+day+"日"+week);    }    private static String getWeek(int i) {        String[] week={"","星期一","星期二","星期三","星期四","星期五","星期六","星期天",};        if(i>7 || i<=0){            throw new NotWeekException("没有对应的星期1-7");//此异常必须继承RunableException        }        return week[i];    }}
package cn.myapi.demo;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class CalendarDemo2 {    /**    * @param 演示日历  Calendar 2016.5.22-2017.2.19    * 1、只有毫秒可以相减    * 2、获取毫秒值,字符串-->日起对象-->毫秒值     * @throws ParseException     */    public static void main(String[] args) throws ParseException{        getDays();    }    public static void getDays() throws ParseException {        String string_date1="2016/5/22";        String string_date2="2017/2/19";//      如何将日期格式字符串解析成日期对象呢?//      DateFormat parse//      自定义yyyy/MM/dd风格对象        DateFormat dateFormat1=new SimpleDateFormat("yyyy/MM/dd");//      2、定义一个默认的风格        DateFormat dateFormat2=DateFormat.getDateInstance(DateFormat.MEDIUM);        /*Date date=new Date();        String str_date=dateFormat1.format(date);        System.out.println(str_date);*///      对日期格式字符串进行解析        Date date1=dateFormat1.parse(string_date1);         Date date2=dateFormat1.parse(string_date2);//      通过日期对象获取毫秒值        long time1=date1.getTime();        long time2=date2.getTime();//      相减        long time=Math.abs(time1-time2);        System.out.println(time);        int day=transDay(time);        System.out.println(date1);        System.out.println(date2);        System.out.println(day);    }    private static int transDay(long time) {        return (int)(time/1000/60/60/24);    }}

Collection

package cn.myapi.demo;public class CollectionDemo {    /**    * @param 模拟一个 Collections min(Collecton coll,Comparator comp)    */    public static void main(String[] args) {        String[] arr=new String[3];        swap(arr,1,2);    }    /**     * @param arr     * @param i     * @param j     */    public static <T> void swap(T[] arr, int i, int j) {        T temp=arr[i];        arr[i]=arr[j];        arr[j]=temp;    }}
package cn.myapi.demo;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Iterator;import java.util.List;public class CollectionDemo1 {    /**    * @param 集合框架的工具类    * Collections:定义的都是操作Collections的静态方法    * 1、对list排序    *   sort(list);    *     * public static<T extends Comparable<? super T>> void sort(List<T> list) {//泛型方法    }    class Student implements Comparable<Student>{        public static void sort(List<Student> list) {        }        @Override        public int compareTo(Student o) {            return 0;        }    }    2、逆序:reverseOrder    3、max min    4、二分查找    5、将非同步集合转成同步集合    Arrays:用来操作数组的操作类    */    public static void main(String[] args) {        methodDemo1();    }    /**     *      */    private static void methodDemo1() {        List<String> list=new ArrayList<String>();        list.add("absdc");        list.add("12x3");        list.add("adefdc");//      对List排序,自然排序。使用的是元素的compareTo()        Collections.sort(list);//      按长度排序//      Collections.sort(list,new ComparatorByLength());//长度排序        Collections.sort(list,Collections.reverseOrder(new ComparatorByLength()));//reverseOrder强行逆转比较器的功能        System.out.println(list);        System.out.println("----------------------------");        Collection<String> collection=new ArrayList<String>();        collection.add("fffff");        collection.add("ggggg");        collection.add("tttt");        String max=getMax(collection);        System.out.println(max);        String max1=Collections.max(collection,new ComparatorByLength());        System.out.println(max1+"\t"+"max1");    /*          Collections中有一个可以将非同步集合转为同步集合的方法        同步synchronize集合(非同步集合);    */      }//  模拟一个获取集合最大值的功能    public static<T extends Object &Comparable<? super T>> T getMax(Collection<? extends T> collection) {        Iterator<? extends T> iterator=collection.iterator();        T max=iterator.next();        while(iterator.hasNext()){            T temp=iterator.next();            if(temp.compareTo(max)>0){                max=temp;            }        }        return max;    }    /*    public static String getMax(Collection<String> collection) {//      1、定义变量记录容器中其中一个//      2、遍历容器所有的元素//      3、在遍历过程中进行比较。只要比变量的中的值大。用变量记录下来,就行        Iterator<String> iterator=collection.iterator();        String max=iterator.next();        while(iterator.hasNext()){            String temp=iterator.next();            if(temp.compareTo(max)>0){                max=temp;            }        }        return max;    }    */}

CollectionToArray

package cn.myapi.demo;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class CollectionToArray {    /**    * @param args    */    public static void main(String[] args) {//      集合转成数组        List<String> list=new ArrayList<String>();        list.add("abc");        list.add("123");/*              传入的数组长度,如果小于集合长度,方法中会创建一个新的长度和集合长度一致的数组        如果传入的数组长度大于集合的长度,会使用传入的数组,所以建议长度定义为集合的size()        为什么要把集合转成数组?就是为了限定对元素的操作,比如增删*/      //      String[] arr=list.toArray(new String[3]);        //改成如下        String[] arr=list.toArray(new String[list.size()]);        System.out.println(Arrays.toString(arr));    }}

ComparatorByLength

package cn.myapi.demo;import java.util.Comparator;public class ComparatorByLength implements Comparator<String> {    @Override    public int compare(String o1, String o2) {        int temp=o1.length()-o2.length();        return temp==0?o1.compareTo(o2):temp;    }    /**    * @param args    */}

Date

package cn.myapi.demo;import java.text.DateFormat;import java.text.ParseException;import java.util.Date;public class DateDemo {    /**    * @param args    */    public static void main(String[] args)throws ParseException {//      演示Date对象        Date date=new Date();//      System.out.println(date);//      想要把日期按照我们的习惯格式化一下,找到了DateFormat        DateFormat dateFormat =DateFormat.getDateInstance();//      加入风格        dateFormat=DateFormat.getDateInstance(DateFormat.FULL);// 由 2017-3-22 转为  2017年3月22日 星期三        dateFormat=DateFormat.getDateInstance(DateFormat.LONG);// 由 2017-3-22 转为  2017年3月22日        dateFormat=DateFormat.getDateInstance(DateFormat.MEDIUM);// 由 2017-3-22 转为 2017-3-22        dateFormat=DateFormat.getDateInstance(DateFormat.SHORT);// 由 2017-3-22 转为 17-3-22               dateFormat=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);// 由 2017-3-22 转为 2017年3月22日 星期三 上午11时45分41秒 CST//      使用DateFormat的format方法对日期进行格式化,将日期对象转成日期格式的字符串        String string=dateFormat.format(date);//      System.out.println(string);//      日期格式的字符串:2017-03-33        String str_date="2017-03-22";        DateFormat dateFormat2=DateFormat.getDateInstance();        Date date2=dateFormat2.parse(str_date);        System.out.println(date2);        long time=System.currentTimeMillis();        System.out.println(time);//1490155236256        Date date3=new Date(time);        System.out.println(date3);        DateFormat dateFormat3=DateFormat.getDateInstance(DateFormat.LONG);        System.out.println(dateFormat3);        String date_format=dateFormat3.format(date3);        System.out.println(date_format);//      日期对象转成毫秒值,Date的对象getTime()        long time3=date.getTime();        System.out.println(time3);    }}

NotWeekException

package cn.myapi.demo;public class NotWeekException extends RuntimeException {    /**     *      */    public NotWeekException() {        super();        // TODO Auto-generated constructor stub    }    /**     * @param arg0     * @param arg1     * @param arg2     * @param arg3     */    public NotWeekException(String arg0, Throwable arg1, boolean arg2, boolean arg3) {        super(arg0, arg1, arg2, arg3);        // TODO Auto-generated constructor stub    }    /**     * @param arg0     * @param arg1     */    public NotWeekException(String arg0, Throwable arg1) {        super(arg0, arg1);        // TODO Auto-generated constructor stub    }    /**     * @param arg0     */    public NotWeekException(String arg0) {        super(arg0);        // TODO Auto-generated constructor stub    }    /**     * @param arg0     */    public NotWeekException(Throwable arg0) {        super(arg0);        // TODO Auto-generated constructor stub    }    /**    * @param args    */}

RuntimeDemo

package cn.myapi.demo;import java.util.Random;public class RuntimeDemo {    public static void main(String[] args) throws Exception{//      单例模式对象Runtime        Runtime runtime=Runtime.getRuntime();//      runtime.exec("notepad.exe");//      Math 数学类,都是静态成员        double d1=Math.ceil(12.43);        double d2=Math.floor(12.43);        double d3=Math.round(12.43);/*              System.out.println("d1="+d1);        System.out.println("d2="+d2);        System.out.println("d3="+d3);        System.out.println(Math.pow(10, 3));    */          for (int i = 0; i < 10; i++) {            double d=Math.ceil(Math.random()*10);            System.out.println(d);        }        Random random= new Random();        for (int i = 0; i < 10; i++) {            int d=random.nextInt(6)+1;            System.out.println("random"+d);        }    }}

staticImport

package cn.myapi.demo;import java.util.ArrayList;import java.util.List;import static java.util.Collections.*;import java.util.*;import static java.lang.System.*;public class StaticImportDemo {    public static void main(String[] args) {    /*          List list=new ArrayList();        Collections.sort(list);        Collections.max(list);        System.out.println(Collections.max(list));    */        List<String> list=new ArrayList<String>();        list.add("aaa");        list.add("bbb");        list.add("123");        sort(list);        System.out.println(max(list));        out.println("Hello");    }    /**     * @param list     * @return     *//*    private static char[] max(List<String> list) {        return null;    }    *//**     * @param list     *//*    private static void sort(List<String> list) {    }*/}

SystemDemo

package cn.myapi.demo;import java.util.Properties;import java.util.Set;public class SysteDemo {    private static final String FILE_SEPARATOR=System.getProperty("file.separator");    private static final String LINE_SEPARATOR=System.getProperty("line.separator");    public static void main(String[] args) {    /*          System:全是静态的行为和属性        属性:        out:标准输出流,默认对应设备显示器        in:标准输入流,默认的设备键盘    */          long time= System.currentTimeMillis();//      System.out.println(time);//      System getProperties(); 获取到系统的信息都存储到Properties键值集合中了        Properties properties =System.getProperties();//      如何去除属性集?        Set<String> set =properties.stringPropertyNames();        for(String key :set){            String value=properties.getProperty(key);//          System.out.println(key+":"+value);        }//      System.out.println(System.getProperty("os.name")+"ssssssssssssssssss");        System.out.println("C:"+FILE_SEPARATOR+"abc"+FILE_SEPARATOR+"1.txt");//会变成文件路径        System.out.println("hello "+LINE_SEPARATOR+"world!");//会分割换行    }}
0 0
原创粉丝点击