黑马程序员——Java基础---Collections,Arrays工具类以及其他对象

来源:互联网 发布:携程大数据分析笔试题 编辑:程序博客网 时间:2024/06/13 08:08

 ——- android培训、java培训、期待与您交流! ———-

排序,最大值以及二分查找演示:

package Collections;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class CollectionsDemo {    public static void main(String[] args) {        sortDemo();        maxDemo();        binarySerachDemo();    }    public static void binarySerachDemo()    {        List<String> list=new ArrayList<String>();        list.add("ab");        list.add("zzz");        list.add("ffgs");        list.add("f");        list.add("jvf");        //二分查找元素必须有序        Collections.sort(list);        int dex=Collections.binarySearch(list, "f");        System.out.println("通过二分查找:"+dex);    }    public static void maxDemo()    {        List<String> list=new ArrayList<String>();        list.add("ab");        list.add("zzz");        list.add("ffgs");        list.add("f");        list.add("jvf");        Collections.sort(list);        String max=Collections.max(list);        System.out.println("最大值是:"+max);    }    public static void sortDemo()    {        List<String> list=new ArrayList<String>();        list.add("ab");        list.add("zzz");        list.add("ffgs");        list.add("f");        list.add("jvf");        //排序前        System.out.println("排序前    :"+list);        //用工具类自然顺序排序        //Collections.sort(list);        Collections.sort(list,new myc());        //排序后        System.out.println("排序后   :"+list);    }}class myc implements Comparator<String>{    public int compare(String o1, String o2) {        if(o1.length()>o2.length())            return 1;        if(o1.length()==o2.length())        {            return o1.compareTo(o2);        }        return -1;    }}

这里写图片描述

替换以及反转:

package Collections;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class CollectionsDemo1 {    public static void main(String[] args) {        fillDemo();        replaceAllDemo();    }    public static void replaceAllDemo()    {        List<String> list=new ArrayList<String>();        list.add("ab");        list.add("zzz");        list.add("ffgs");        list.add("f");        list.add("jvf");        Collections.replaceAll(list,"ab","bbbb");        System.out.println(list);        //反转元素                Collections.reverse(list);                System.out.println(list);    }    public static void fillDemo()    {    List<String> list=new ArrayList<String>();        list.add("ab");        list.add("zzz");        list.add("ffgs");        list.add("f");        list.add("jvf");        System.out.println(list);        //替换元素        Collections.fill(list,"pp");        System.out.println(list);    }}

这里写图片描述

反转:Collection.reverseOrder

package Collections;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.TreeSet;public class CollectionsDemo3 {    public static void main(String[] args) {        orderDemo();    }    public static void orderDemo()    {                                                //反转        TreeSet<String> ts=new TreeSet<String>(Collections.reverseOrder());        ts.add("ab");        ts.add("zzz");         ts.add("ffgs");        ts.add("f");        ts.add("jvf");        Iterator<String> it=ts.iterator();        while(it.hasNext())        {            System.out.println(it.next());        }    }}

这里写图片描述

Arrays类
常用方法示例:

package Collections;import java.util.Arrays;import java.util.List;public class ArrayDemo {    public static void main(String[] args) {        int[] arr={2,4,5};        //将数组变成字符串        System.out.println(Arrays.toString(arr));        String[] sr={"abc","dd","fk"};        //把数组变成集合        /*         * 数组变成集合的好处:可以用集合的思想和方法来操作数组中的元素。         * 注意:将数组变成集合,不可以使用集合的增删方法,因为数组的长度是固定的。         *          */        List<String> list=Arrays.asList(sr);        System.out.println(list);    }}

这里写图片描述

集合变数组
为什么要将集合变数组?
为了限定对元素的操作。

指定类型的数组到底要定义多长呢?
当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size,当指定类型的数组长度大于集合的size,就不会新出用新创建的数组,而是使用传递进来的数组。所以要创建一个刚刚好的数组最优。

高级for循环
格式:for(数据类型 变量名:被遍历的集合(Collection)或者数组)
{
}
传统for和高级for有什么区别
高级for有一个局限性,必须有被遍历的目标。
这里写图片描述

jdk1.5新特性
可变参数:
其实就是数组参数的简写形式,不用每一次都手动的建立数组对象,只要将要操作的元素作为参数传递即可,隐式将这些参数封装成了数组。
这里写图片描述

静态导入:
当类名重名时,需要指定具体的包名,当方法重名时,指定具备所属的对象或者类。
这里写图片描述

System类
描述系统的一些信息

获取系统属性信息:Properties getProperties()

Runtime
该类并没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的,发现该类中还有非静态方法,说明该类肯定会提供了方法获取本类对象,而且该方法时静态的,并返回值类型是本类类型。
该方式是 static Runtime getRuntime();

package OthersObject;import java.io.IOException;public class RuntimeDemo {    public static void main(String[] args) throws IOException {        Runtime r=Runtime.getRuntime();            //指定打开记事本程序            r.exec("notepad.exe");    }}

这里写图片描述

Date SimpleFormatDate Calendar

package OthersObject;import java.text.SimpleDateFormat;import java.util.Date;public class DateDemo {    public static void main(String[] args) {        Date d=new Date();        //将模式封装到simpleDateformat对象中        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");        //调用format方法让模式格式化指定Date对象。        String time=sdf.format(d);        System.out.println(time);    }}

这里写图片描述

用Canlendar获取年月日

package OthersObject;import java.util.Calendar;import java.util.Date;public class CallendarDemo {    public static void main(String[] args) {        Calendar c=Calendar.getInstance();        //获取年        System.out.println(c.get(Calendar.YEAR)+"年");        //获取月        System.out.println(c.get(Calendar.MONTH)+1+"月");        //获取日        System.out.println(c.get(Calendar.DAY_OF_MONTH)+"日");    }}

这里写图片描述

设置时间及增加:

package OthersObject;import java.util.Calendar;public class CalendarDemo1 {    public static void main(String[] args) {        Calendar c=Calendar.getInstance();        //设置时间        c.set(2033,2,23);        getTime(c);        //增加        c.add(Calendar.DAY_OF_MONTH,-1);        getTime(c);    }    public static void getTime(Calendar c)    {        //获取年        System.out.println(c.get(Calendar.YEAR)+"年");        //获取月        System.out.println(c.get(Calendar.MONTH)+1+"月");        //获取日        System.out.println(c.get(Calendar.DAY_OF_MONTH)+"日");    }}

这里写图片描述

Math类
常用方法演示:

package OthersObject;public class MathDemo {    public static void main(String[] args) {        double d=Math.ceil(16.34);//返回大于指定数据的最小整数        double d1=Math.floor(12.44);//返回小于指定数据的最大整数        double d3=Math.round(12.45);//四舍五入        System.out.println(d);        System.out.println(d1);        System.out.println(d3);        double d4=Math.pow(2, 2);//获取幂        System.out.println(d4);        show();    }    //获取0到10的随机数    public static void show()    {        for(int x=0; x<10; x++)        {            int d=(int)(Math.random()*10+1);            System.out.print(d+" ");        }    }}

这里写图片描述

0 0
原创粉丝点击