11.04/05课堂内容整理

11.04内容

一、二分查找

       二分查找的前提是数组必须是排好序的!

       从中间位置开始查找,将所要查找的元素与中间位置的元素进行比较。(假设一个数组是从小到大排列的)则若是要查找的元素比中间元素大的话就往右找,若小于中间元素就往左找,若恰好是中间元素则返回中间元素的索引即可!

        还有若是查找无序数组中的元素时,建议用一般方法查找即可!因为如果用二分法查找的话就需要先给数组排序,排序后所要查找的元素索引就改变了!没有意义!

二、public BigDecimal(String val)  可以用来进行任意精度浮点类型数据的的十进制计算!

       由于浮点类型数据在参与计算时容易损失精度,所以Java针对这一现象设计了此方法!

       成员方法:

              1、 public BigDemical add( BigDemical augend )   加

              2、 public BigDemical subtract(BigDemical subtrahead)   减

              3、 public BigDemical multiply(BigDemical mutiplicand)    乘

              4、 public BigDemical divide(BigDemical divisor)    除

              5、 public BigDemical divide(BigDemical divisor , int  scale, int roudingMode)   参数意义:  商     保留几位小数       舍入的一种模式

三、BigInteger  用来计算超出Integer范围的数据

      构造方法:public BigInteger(String val)    封装数字的字符串表示形式

      其成员方法:

            1、public BigInteger add(BigInteger val)   加

            2、public BigInteger subtract(BigInteger  val)   减

            3、public BigInteger multiply(BigInteger val)   乘

            4、public BigInteger divide(BigInteger val)    除

            5、public BigInteger[] divideAndRemainder(BigInteger val)   返回的是一个BigInteger数组,元素为商和余数

四、Calendar  日历类(抽象类)

       由于为抽象类所以不能实例化;只有通过getInstance()来进行实例化!

       Calendar calendar=Calendar.getInstance();

       public static Calendar getInstance()

       public int get(int field)返回给定日历字段的值

方法:

         1、public static final int  YEAR:表示日历中的年

         2、public static final int MONTH:表示从0开始的月份

         3、public static final int DATE:表示月份里的某一天,相当于DAY_OF_MOMTH

         4、public  abstract void add(int field,int amount)   为给定的日历字段添加或者减去时间偏移量

                                c.add(Calendar.YEAR, 5);   五年后

                                c.add(Calendar.DATE, -10) ;  10天前

         5、public  final void set(int year,int month,int date)   设置日历字段 YEAR  MONTH  DAY_OF_MONTH的值

                                c.set(2018,5,20) ;  

五、Date(日期类): 表示特定的瞬间,精确到毫秒。

       1、创建对象:   Date d = new Date() ;

       2、构造方式:   public Date():    表示分配的一个Date对象,无参(通过无参构造可以获取到当前具体的系统时间)

                                public Date(long date):    指定一个时间毫秒值   和1970-1-1  00:00:00由时间差

       3、成员方法:   public long getTime():  获取当前的时间毫秒值

                                public void setTime(long time)

                                currentTimeMillis());//通过System可以获取当前时间的毫秒数

       4、Date对象和String类型日期的“文本格式”的互相转换:

             1)将Date对象--->String类型的日期的"文本格式":格式化

                     pubilc final String format(Date date)

             2) String类型日期的"文本格式"---->Date日期对象:解析

                     public Date parse(String source)  此方法会抛出一个异常   ParseException 解析时期异常

可以用中间桥梁DateFormat进行转换!    

DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

由于是抽象类所以不能进行实例化,因此要用其子类进行实例化(SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类)

      5、SimpleDateFormat的构造方法:public SimpleDateFormat(String pattern)   用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat

      6、时间和日期的模式

            y  ----------------------  年  ------------------------   yyyy

           M  --------------------- 月份  ----------------------    MM

           d  ---------------------  天数  ----------------------    dd

           H  --------------------- 小时  -----------------------   HH

           m  --------------------  分钟  -----------------------  mm

           s  ---------------------  秒数  ----------------------   dd

一定要保证SimpleDateFormat中的String Pattern这个模式和当前给的字符串的文本格式的模式必须一致!多一个或少一个空格都不可以!!!!

六、Math类

        成员方法:1、public static int abs(int a):       绝对值

                            2、public static double ceil(double a):    向上取整

                            3、public static double floor(double a):    向下取整

                            4、public static double max(double a,double b):    获取最大值

                            5、public static double min(double a,double b):    获取最小值

                            6、public static double pow(double a,double b):    a的b次幂

                            7、public static double random():    取值范围:[0.0,1.0)

                            8、public static long round(double a):    四舍五入

                            9、public static double sqrt(double a):    一个数的正平方跟

import static java.lang.Math.abs; //静态导入()import   static  ,直接导入方法

七、System类(无构造方法,所有字段和方法都被static修饰)

        常用的成员方法:

        public static void gc()   运行垃圾回收器。

        public static void exit(int status)   终止当前正在运行的 Java 虚拟机。

        public static long currentTimeMillis():返回当前的时间毫秒值

        public static void arraycopy(Object src,int srcPos,Object dest, int destPos,int length) 在源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

调用 gc 方法暗示 Java 虚拟机回收未用对象,以便能够快速地重新使用这些对象当前占用的内存,最终调用的就是重写之后的finalize()回收不用的对象!


11.05内容

一、集合

学过的容器变量有:数组,StringBuffer,StringBuilder,集合

面试题:
          集合和数组的区别?
          1)长度的区别:
              数组:长度是固定的;
              集合:长度是可变的
          2)存储数据类型的区别:
              数组:可以存储引用类型,可以存储基本数据类型
              集合:只能存储引用类型
          3)存储元素的区别
              数组:在同一个数组中,只能存储同一种数据类型的元素;举例 数组:杯子:只能装水
              集合:可以存储多种数据类型的元素;     

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

1、Collection的功能

   1、   添加功能:
          boolean add(Object e):给集合中添加指定的元素
          boolean addAll(Collection c):添加一个集合中的所有元素
   2、 删除功能:
          void clear():删除一个集合中的所有元素,暴力删除,(不建议使用)
          boolean remove(Object o):删除一个集合中的指定元素
          boolean removeAll(Collection c):删除一个集合中的所有元素?思考:删除所有算是删除还是删除一个算是删除?
   3、 判断功能:
          boolean contains(Object o):判断一个集合中是否包含指定的单个元素
          boolean containsAll(Collection c):判断一个集合中是否另一个集合;思考:是包含一个元素算是包含还是包含所有.
          boolean isEmpty():判断集合是否为空,如果为空,则返回true
         
   4、 交集功能:
          boolean retainAll(Collection c):思考:A集合给B集合做交集,交集的元素去哪里?返回值boolean表达什么意思?
   5、获取功能;
          int size():获取集合中的元素数
          Iterator<E> iterator():迭代器
   6、转换功能:
          Object[] toArray():将集合转换成数组
面试题:
          数组中有没有length(),String类中有没有length(),集合中有没有length()?
          数组:length属性
          String:length()
          集合中:size()  

2、集合的高级功能:
      boolean addAll(Collection c):   添加一个集合中的所有元素
      boolean removeAll(Collection c):   删除一个算是删除
      boolean containsAll(Collection c):    包含所有算是包含
      boolean retainAll(Collection c):   交集的元素去A集合里面了,A集合中的元素如果发生变化,就返回true;否则,false

3、Object[] toArray():    可以将集合转换成数组

二、迭代器:集合的专有遍历方式:使用集合自己本身迭代功能遍历集合中的元素

          Iterator iterator():

成员方法:

              获取功能:    Object next()     返回迭代的下一个元素:
              判断功能:    boolean hasNext():     判断一个集合中是否有下一个可以迭代的元素:
 注意:存储自定义对象使用迭代器遍历,it.next()不要使用多次,否则会出现异常

三、List(该集合是一个有序的集合(存储元素和取出元素是一致的! 并且集合中的元素是可以重复的)

1、List集合的特有功能:
         添加功能:
              void add(int index, Object element)在列表的指定位置插入指定元素
         删除功能:
             Object remove(int index)移除列表中指定位置的元素,返回被删除的元素
         获取功能:
              ListIterator listIterator():列表迭代器:List集合的专有遍历方式
              Object get(int index)返回列表中指定位置的元素。
         替换
               set(int index,Object element)用指定元素替换列表中指定位置的元素
2、List集合的遍历方式
             1)toArray()
             2)Collection集合中的Iterator iterator(); 

3、 List集合的列表迭代器
           ListIterator listIterator()
       列表迭代器接口中有以下几个方法:
              boolean hasNext():判断是否有下一个可以迭代的元素(正向遍历)
              Object next():如果有可以遍历的元素,就获取这个元素
 
              boolean hasPrevious():判断是否有上一个可以迭代的元素(逆向遍历)
              Object  previous():如果有上一个可以迭代的元素,就获取上一个元素
      注意:
              要使用逆向遍历,前提必须有正向遍历存在,直接使用逆向遍历,没有意义!

4、java.util.ConcurrentModificationException:并发修改异常:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
      原因:当前我们用迭代器去遍历元素,使用集合添加的元素,对于迭代器不知道集合添加了这个元素,所以会发生这个异常
      描述:使用迭代器去遍历集合,是不能直接集合添加元素!
      解决方案:
             1)使用迭代器遍历集合,使用迭代器添加元素
             2)使用集合遍历,使用集合添加元素

5、String的分割功能:         
  public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。  返回值类型是一个字符串数组类型

5、String类中的替换功能:和正则表达式有关系
       public String replaceAll(String regex,String replacement)      使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值