zoukankan      html  css  js  c++  java
  • Java—包装类/System类/Math类/Arrays类/大数据运算/Collection接口/Iterator迭代器

    基本类型包装类

      8种基本类型对应的包装类如:

     

       将字符串转成基本类型

       将基本数值转成字符串有3种方式:

        基本类型直接与””相连接即可;34+" "

        调用String的valueOf方法;String.valueOf(34) 

       调用包装类中的toString方法:Integer.toString(11);

       自动装箱拆箱

        自动拆箱:对象自动直接转成基本数值

          自动装箱:基本数值自动直接转成对象

    Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
    i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; 加法运算完成后,再次装箱,把基本数值转成对象。

    System类

      currentTimeMillis() 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

      exit(int status) 用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态

      gc() 用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。

      getProperty(String key) 用来获取指定(字符串名称)中所记录的系统属性信息

      arraycopy方法,用来实现将源数组部分元素复制到目标数组的指定位置

    Math类

     

       使用方法:

    //abs方法,结果都为正数
    double d1 = Math.abs(-5); // d1的值为5
    double d2 = Math.abs(5); // d2的值为5
    //ceil方法,结果为比参数值大的最小整数的double值
    double d1 = Math.ceil(3.3); //d1的值为 4.0
    double d2 = Math.ceil(-3.3) ; //d2的值为 -3.0
    double d3 = Math.ceil(5.1); // d3的值为 6.0
    //floor方法,结果为比参数值小的最大整数的double值
    double d1 = Math.floor(3.3); //d1的值为3.0
    double d2 = Math.floor(-3.3); //d2的值为-4.0
    double d3 = Math.floor(5.1); //d3的值为 5.0
    //max方法,返回两个参数值中较大的值
    double d1 = Math.max(3.3, 5.5); //d1的值为5.5
    double d2 = Math.max(-3.3, -5.5); //d2的值为-3.3
    //min方法,返回两个参数值中较小的值
    double d1 = Math.min(3.3, 5.5); //d1的值为3.3
    double d2 = Math.max(-3.3, -5.5); //d2的值为-5.5
    //pow方法,返回第一个参数的第二个参数次幂的值
    double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0
    double d2 = Math.pow(3.0, 3.0); //d2的值为27.0
    //round方法,返回参数值四舍五入的结果
    double d1 = Math.round(5.5); //d1的值为6.0
    double d2 = Math.round(5.4); //d2的值为5.0
    //random方法,产生一个大于等于0.0且小于1.0的double小数
    double d1 = Math.random();

    Arrays类

      此类包含用来操作数组(比如排序和搜索)的各种方法。需要注意,如果指定数组引用为 null,则访问此类中的方法都会抛出空指针异常NullPointerException

     

    //sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序)
    //源arr数组元素{1,5,9,3,7}, 进行排序后arr数组元素为{1,3,5,7,9}
    int[] arr={1,5,9,3,7}
    Arrays.sort(arr);
    //toString方法,用来返回指定数组元素内容的字符串形式
    int[] arr = {1,5,9,3,7};
    String str=Arrays.toString(arr);/ str的值为[1, 3, 5, 7, 9]
    //binarySearch方法,在指定数组中,查找给定元素值出现的位置。若没有查询到,返回位置为-1。要求该数组必须是个有序的数组。
    int[] arr = {1,3,4,5,6};
    int index=Arrays.binarySearch(arr,4); //index的值为2
    int index=Arrays.binarySearch(arr,2); //index2的值为-1

    大数据运算

      javalong型为最大整数类型,对于超过long型的数据如何去表示呢.Java的世界中,超过long型的整数已经不能被称为整数了,

      它们被封装成BigInteger对象.BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.

     

      构造方法中,采用字符串的形式给出整数

      四则运算代码:

    public static void main(String[] args) {
            //大数据封装为BigInteger对象
              BigInteger big1 = new BigInteger("12345678909876543210");
              BigInteger big2 = new BigInteger("98765432101234567890");
              //add实现加法运算
              BigInteger bigAdd = big1.add(big2);
              //subtract实现减法运算
              BigInteger bigSub = big1.subtract(big2);
              //multiply实现乘法运算
              BigInteger bigMul = big1.multiply(big2);
              //divide实现除法运算
              BigInteger bigDiv = big2.divide(big1);
    }

      

       doublefloat类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal可以实现浮点数据的高精度运算

     

       实现加法减法乘法代码如下

    public static void main(String[] args) {
              //大数据封装为BigDecimal对象
              BigDecimal big1 = new BigDecimal("0.09");
              BigDecimal big2 = new BigDecimal("0.01");
              //add实现加法运算
              BigDecimal bigAdd = big1.add(big2);
              
              BigDecimal big3 = new BigDecimal("1.0");
              BigDecimal big4 = new BigDecimal("0.32");
              //subtract实现减法运算
              BigDecimal bigSub = big3.subtract(big4);
              
              BigDecimal big5 = new BigDecimal("1.105");
              BigDecimal big6 = new BigDecimal("100");
              //multiply实现乘法运算
              BigDecimal bigMul = big5.multiply(big6);

    集合

      ArrayList集合  ArrayList<Integer> list = new ArrayList<Integer>();

      集合的继承实现关系

        查看ArrayList类发现它继承了抽象类AbstractList同时实现接口List,而List接口又继承了Collection接口。Collection接口为最顶层集合接口了

    源代码:
    interface List extends Collection {
    }
    public class ArrayList extends AbstractList implements List{
    } 

      这说明我们在使用ArrayList类时,该类已经把所有抽象方法进行了重写。那么,实现Collection接口的所有子类都会进行方法重写。  

      Collection接口常用的子接口有:List接口、Set接口

      List接口常用的子类有:ArrayList类、LinkedList

      Set接口常用的子类有:HashSet类、LinkedHashSet

      Collection接口是集合中的顶层接口

      Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。

      一些 collection 是有序的,而另一些则是无序的。

       创建集合的格式:

    方式1:Collection<元素类型> 变量名 = new ArrayList<元素类型>();
    方式2:Collection 变量名 = new ArrayList();
    //创建集合
    Collection coll = new ArrayList();
    //1,往集合中添加对象元素。add(E e)方法,E代表创建集合时所指定的数据类型如<String>,那么,E就代表String类型;创建集合时若没有指定数据类型,那么,E就代表Object类型。
    coll.add("abc");
    coll.add("ef");
    coll.add("g");        
    //把集合打印一下。
    System.out.println(coll); //打印结果为:[abc, ef, g]
    System.out.println(coll.toString()); //打印结果为:[abc, ef, g]
    //2,从集合中删除元素。remove(Object o)方法
    coll.remove("ef");        
    //删除后,集合元素为[abc, g]
    //3,判断集合中是否包含指定元素。contains(Object o)方法
    System.out.println(coll.contains("abc"));
    //打印结果为true
    System.out.println(coll.contains("ef"));
    //打印结果为false
        
    //4,获取集合元素个数。size()方法
    System.out.println(coll.size());
    //打印结果为2
     
    //5,返回包含集合中所有元素的数组。toArray()方法
    String[] array = coll.toArray();
    //数组中的元素为{"abc", "g"}
     
    //6,清除集合元素。remove()方法
    coll.clear();
    //清空后,集合元素为[],代表没有元素

    Iterator迭代器

      hasNext()方法:用来判断集合中是否有下一个元素可以迭代。如果返回true,说明可以迭代。

      next()方法:用来返回迭代的下一个元素,并把指针向后移动一位。

      Collection接口描述了一个抽象方法iterator方法,所有Collection子类都实现了这个方法,并且有自己的迭代形式。

      进行代码演示:

    //1,创建集合对象。
    Collection<String> coll = new ArrayList<String>();
    coll.add("abc1");
    coll.add("abc2");
    coll.add("abc3");
    coll.add("abc4");
     
    //2.获取容器的迭代器对象。通过iterator方法。
    Iterator it = coll.iterator();
     
    //3,使用具体的迭代器对象获取集合中的元素。参阅迭代器的方法
    while(it.hasNext()){
        System.out.println(it.next());
    }
     
    /*
    迭代器for循环的形式的使用
    for (Iterator it = coll.iterator(); it.hasNext(); ) {
        System.out.println(it.next());
    }
    */

      注意:在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。

     

  • 相关阅读:
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Windows10+CLion+OpenCV4.5.2开发环境搭建
    Android解决部分机型WebView播放视频全屏按钮灰色无法点击、点击全屏白屏无法播放等问题
    MediaCodec.configure Picture Width(1080) or Height(2163) invalid, should N*2
    tesseract
    Caer -- a friendly API wrapper for OpenCV
    Integrating OpenCV python tool into one SKlearn MNIST example for supporting prediction
    Integrating Hub with one sklearn mnist example
    What is WSGI (Web Server Gateway Interface)?
    Hub --- 机器学习燃料(数据)的仓库
  • 原文地址:https://www.cnblogs.com/wode007/p/13294162.html
Copyright © 2011-2022 走看看