安卓学习记录03

来源:互联网 发布:mysql多表联合查询 编辑:程序博客网 时间:2024/05/16 05:43

安卓学习记录03

一. 安卓部分

5月5号到7号

1. 学习了安卓中的数据库SQLite的增删改查德操作,有两种实现的方式,一种是调用execSQL(sql)对数据库进行操作,一种是用api提供的insert(),delete(),update(),query()的方法对数据库进行操作。

2. 学习了ContentProvider,ContentResolver的功能和使用,但是只是初步的了解,还需要再进一步的俄研究,现在对他们的了解是,ContentProvider负责把数据都暴露出来,ContentResolver负责把暴露出来的数据进行操作,同时还引入了安卓对Uri的操作提供的两个类:UriMatcher,ContentUris。

3. 总结:这部分内容很像JDBC的内容,都是对数据库的数据进行操作,安卓中也有事务这一概念,今天对事务的了解更进一步了,之前只是会使用事务,现在也明白了它为什么要使用事务?因为使用事务之后,我们对数据库的数据的一些操作如果正常的运行,使用事务之后,操作后的数据就会永久的保存在磁盘中,那如果运行中有异常,使用事务就会把数据回滚到没有进行任何操作之前的状态,从而不会导致数据的错误。此外,事务的使用还可以大大的减少运行的时间,比如同时向数据库中添加10000条记录,使用事务所耗用的时间大约是没使用事务的九分之一。

二. 算法部分

1.   用2*1的小矩形横着或者竖着摆放更大的矩形,问用n个2*1的小矩形无重叠的覆盖一个2*n的大矩形,总共有多少种方法

2.      

3.     public classZifu {

4.      publicstaticvoidmain(String[]args){

5.          inti =RecCover(4);

6.          System.out.println(i);

7.         

8.      }

9.     

10.     publicstaticintRecCover(inttarget){

11.         if(target < 1){

12.             return 0;

13.         }elseif(target < 2){

14.             return 1;

15.         }elseif(target < 3){

16.             return 2;

17.         }else{

18.             returnRecCover(target - 1) +RecCover(target -2);

19.         }

20.     }

21.    }

22.    注意:说明target为0时,如果第一次是2*1摆放的,那么摆放方法一共有target(n-1),如果第一次是1*2摆放的,那么摆放的方法是target(n-2)。

   

2.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的顺序排序.请完成一个函数,输入这样一个二维数组,和一个整数,判断数组中是否含有该整数.

 

public classZifu {

    public static void main(String[] args) {

        System.out.println(find(newint[][]{{1, 2, 3}, {4, 5,6}, {7, 8, 9}}, 0));

       

    }

   

    public static boolean find(int[][]array ,inttarget){

        int rowCount = array.length;

        int colCount = array[0].length;

        int i, j;

        for(i =rowCount - 1,j = 0;i>0 &&j<colCount;){

            if(target ==array[i][j])

                returntrue;

            if(target <array[i][j]){

                i --;

                continue;

            }

            if(target >array[i][j]){

                j++;

                continue;

            }

        }

        return false;

    }

}

 

注意:java中的二维数组,arry.length的大小是二维数组的行数,arry[0].length的大小是二维数组的列数。

 

0 0
原创粉丝点击