2021.03.22数组中常见的错误、冒泡排序、查找、数组的一些方法、二维数组及其遍历、创建对象

数组中常见的错误或异常

1.ArrayIndexOutOfBoundsException  数组下标越界异常

int[] arr={1,3,5,7};System.out.println(arr[4]);

2.NullPointerException  空指针异常

int[] arr3 ={2,4,6,8};arr3 =null;System.out.println("arr3[0] = " + arr3[0]);

!!!!!!(非常重要)冒泡排序

线性查找

有一个数组{1,3,5,7,-11},从键盘输入要查找的元素,判断是否在数组中,如果存在返回下标,不存在返回-1

 BinarySearch 二分查找法,也可以称为 折半查找法

二分查找前提是所有的元素已经按照从小到大排序了

数组的一些方法

1.Arrays.sort(数组名) 排序数组

2.Arrays.toString(数组名) 将数组转换为字符串

3.Arrays.binarySearch(数组名,要查找的数字) 二分查找查找数字在不在数组中,存在返回元素下标,不存在返回-1

4.Arrays.equals(数组名1,数组名2); 判断两个数组是否相等,返回值为布尔类型

5.Arrays.copyOf(要复制的数组名,新数组的长度);  复制指定数组,得到一个新的数组,新数组的长度大于要复制的数组,则混用0来填充,小于的话,则进行截取

6.Arrays.fill(arr,要填充的数字)  填充数组

7.字符串.indexof("子字符串")  返回此字符串中第一次出现指定子字符串的索引

面试题

有这样一个数组

1.统计指定水果出现的次数            2.统计出现次数最多的水果名称,以及出现的次数


package com.sky.day6.p1;

public class Demo7Apple{

    public static void main(String[] args) {

        String[] arr ={"苹果","香蕉","橘子","榴莲","苹果","苹果","橘子","香蕉"};

        String fruit ="苹果";

        int times=fruitTime(arr,fruit);

        System.out.println("苹果出现的次数times = " + times+"次");

        maxTimes(arr);

    }

    public static int fruitTime(String[] arr,String fruit) {

        int count=0;//计数器,制定水果出现的次数

        for(int i=0;i

            //每出现一次指定的水果,计数器加一

            if(fruit.equals(arr[i])){

                count++;

            }

}

        return  count;

    }

    public static void maxTimes(String[] arr) {

        String name =null;//出现次数最多的水果名称

        int max=0;//最大出现的次数

        //外层循环获取每种水果

        for(int i=0;i

            int count=0;//水果出现的次数

            for(int j=0;j

                if(arr[i].equals(arr[j])){

                    count++;

                }

}

            if(count>max){//如果次数>当前的max

                max=count;

                name=arr[i];

            }

}

        System.out.println( name+"出现次数最多,出现"+max+"次");

    }

}


合并两个数组,组成一个新的数组

用两个数组,数组a{1,3,5,7},数组b{2,4,6,8}将两个数组合并为数组c,并打印输出

将两个数组合并为一个数组的函数

System.arraycopy(源数组,源数组中的起始位置,目标数组,目标数据中的起始位置,要复制的数组元素的数量)

object是java中所有类的父类

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

src - the source array源数组。

srcPos - starting position in the source array源数组中的起始位置。

dest - the destination array目标数组。

destPos -starting position in the destination data目标数据中的起始位置。

length - the number of array elements to be copied要复制的数组元素的数量。

二维数组

1.创建二维数组
(1)第一种方法是:

数据集类型[][] 数组名= new 数据类型[行的个数][列的个数]

int[][] xx= new int[3][4];

[3]表示二维数组中的有三个一维数组

[4]表示每一个一维数组中有四个元素

(2)第二种方式:

数据类型[][] 数组名 = new 数据类型[行的个数][];

int [][] xx= new int[3][];

第二种方式和第一种类似,只是数组中每个元素的长度不确定

(3)第三种方式:静态初始化

数据类型[][] 数组名={{第0行初始化}.{第一行初始化},....,{第n行初始化}}

将二维数组转成字符串输出用Arrays.deepToString(数组名)

将一维数组转成字符串 Arrays.toString(数组名)

int[][] arr={{1,2,3},{4,5,6},{7,8,9}};

System.out.println("Arrays.deepToString(arr) = " + Arrays.deepToString(arr));

二维数组的遍历

1.通过两层for循环嵌套

创建对象

1.创建Person类

一个类中包含成员变量和成员方法

(1)成员变量(又称属性,字段)

成员变量定义在类中 并且在方法外

String   name;//姓名                            int   age;//年龄                                String    sex;//性别

(2)成员方法,对应着对象的行为

public void speak() {

    System.out.println(name +"在说话");

}

2.创建对象

(1)语法:类名 对象名 = new 类名();  (对象名要遵守标识符的命名规则)

Person person = new Person();

(2)对象访问成员变量:对象名.成员变量名

成员变量有默认的初始值,分类型讨论:byte short int long 默认初始值是0;float 默认0.0f;   double默认是0.0;boolean 默认是false;char 默认是空字符 \u0000;引用数据类型 默认是 null

给成员变量赋值: 对象名.成员变量=值

person.name = "Anna";

(3)调用成员方法: 对象名.成员方法()或对象名.成员方法(参数列表)

person1.speak();

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容