精华内容
下载资源
问答
  • 第一章 数组假设班里有30个同学,每个同学都有一个总成绩,如果要使用变量来记录这些些同学的成绩,我们需要定义30个变量,如果...当数据过多的时候,如果要统一管理,保存,就可以使用Java中提供的【数组】功能。1...

    第一章 数组

    假设班里有30个同学,每个同学都有一个总成绩,如果要使用变量来记录这些些同学的成绩,我们需要定义30个变量,

    如果我们求出我们班所有人的总成绩,得一个一个的加。这样的操作,是非常麻烦的。

    如果要把这30个成绩数据进行保存,之后要提取某个同学的成绩时,你得知道,这个同学他对应的变量名。

    这也是一个非常麻烦的地方。

    当数据过多的时候,如果要统一管理,保存,就可以使用Java中提供的【数组】功能。

    1.1 什么是数组

    数组是编程语言中最常见的数据结构。可以存储多个数据,一个数组只能存储同一种类型的数据。

    简单来说,数组就是一个装同一种类型数据的容器.

    这个容器是开辟在内存中的一个连续的空间,从而可以保证数据存储的顺序。这个顺序是从0开始排序,这些排序的序号叫索引,也叫角标

    可以理解为索引就是数据在数组中的位置.

    数组,是引用数据类型中的一员。

    生活中的小粟子:

    ded6fe9a87242e9d0b83967189dde03f.png

    在超市的储物柜,有很多的小柜子,每一个小柜子都有一个编号,这些小柜子是连续排列的。我们的数组,就类似于这么一个储物柜。

    数组是存在于内存中的,是看不见,但是存在的。

    1.2 创建数组的格式

    数组的应用,有种方式。

    1.2.1 动态创建

    数组创建的格式:

    数据类型 变量名

    数据类型[] 数组名 = new 数据类型[数组的长度];

    指定创建的数据,装的是什么样的数据。

    在数组的定义在,这个符号[]表示一维数组。

    数据类型[] :表示定义的是数组变量 ,也可以理解为数组数据类型,也是数据类型中的一种,归类于引用数据类型。

    数组名 == 变量名

    new :这个关键字,意思是在内存中去创建出存放数据的位置、空间

    数据类型[数组的长度]:表示在内存中存放数据容器中数组。

    数组的长度:表示存放数据的个数。

    存放在数组中的数据,又叫做数组元素,简称元素。

    示例:

    我们要创建一个数组,装30个同学的成绩:

    int[] chengJi = new int[30];

    1.2.2 静态创建

    创建格式:

    数据类型[] 数组名 = new 数据类型[]{元素...};

    所谓的静态,是在创建数据的同时,给出具体的数据。

    一创建就直接给数据。

    对于静态的数组创建的方式,还可以简写与:

    数据类型[] 数组名 = {元素...};

    这种格式,在开发中应用的最多。

    1.3 数组的初始化&操作

    初始化:数组在创建好的时候,会按数据的类型给每个元素一个【默认值】。

    数组操作:就是为每个数组的元素赋值,是往这个容器中添加或修改数据。

    数组的操作,最终操作的是数组中的数据。

    在数组创建时,不同的数据类型在堆内存中会有不同的默认值:

    u byte、short、int、long-->默认初始化值都是0整数

    u float、double-->默认初始化值都是0.0 小数

    u char --> 默认初始化值都是' ' (空格)

    u boolean --> 默认初始化值都是false

    u 引用数据类型 --> 默认初始化值都是null:

    无效的,无价值的;等于零的,

    在JAVA中意思是不存在的,空的

    1.3.1 数组的操作

    数组,是创建在内存中,连续的空间。

    我们把数据装到数组中对应位置,这个位置,使用的是当前数据所在的数组中的索引来指定。

    简单的一句话,索引记录、指定了数据所在的位置。

    int[] chengJi = new int[30];

    //把同学的成绩装到数组中

    //装第1个成绩

    使用数组的时候,要指定所使用的、要查找的索引位置,通过[索引]来实现,索引是从0开始计算,第1个就是0

    chengJi[0] = 99;

    //第2个成绩

    chengJi[1] = 98;

    ……

    chengJi[29] = ...

    这种方式,不管是静态的创建还是动态的创建,只要是往数组中放数据,都一样。

    但是,需要注意的是,如果数组中,指定的索引上已经有数据,再装,就是覆盖。原来的数据就没了

    如果要取出数组中的数据:

    假设要取了第13位同学的成绩,

    int t13 = chengJi[12];

    System.out.println(chengJi[12]);

    chengJi[12]; //这样也可以,但是没有意义。

    以上,是常规的数组的操作。

    如果我要把所有数组中元素,都拿来出进行计算,要怎么做??

    要把数组中的元素都拿出来,最快最有效的方法,是使用for循环。使用for循环来对数据进行的操作,叫做遍历。

    四个术语:索引、角标、元素、遍历

    角标:上角标(最大索引)、下角标(最小索引)

    1.3.2 示例

    1.3.2.1 设置值和取值

    示例1:设置值和取值

    ec9865a30503ea483c8db82a3361ef19.png

    索引的操作:[索引值]

    要操作的是哪一个数组中的哪一个索引值

    操作数据的格式:数组名[索引值];

    1.3.2.2 修改数据

    示例2:

    修改数组中的数据

    824b0bc4761f3252ec44b23ada1a6437.png

    修改之后,原数据将会消失。

    展开全文
  • 我们定义的内容,比如类名、方法名、变量名等等命名规则:是有硬性要求的标识符可以包含英文字母(区分大小写)、0-9数字、$和_(下划线)标识符不能以数字开头标识符不能是关键字关键字:是指Java已经定义好的单词...

    a1ddb452eae7973f1320ae2731263859.png

    标识符

    • 标识符:是指在程序中自己定义的内容,如类名、方法名、变量名等等。
    • 标识符,是指在程序中,我们定义的内容,比如类名、方法名、变量名等等
    • 命名规则:是有硬性要求的
      • 标识符可以包含英文字母(区分大小写)、0-9数字、$和_(下划线)
      • 标识符不能以数字开头
      • 标识符不能是关键字

    关键字:是指Java已经定义好的单词,具有特殊含义,比如public、static、class、void等等

    • 命名规范:见名知意
      • 类名规范:首字母大写,后边的每个单词首字母大写(大驼峰式)
      • 方法名规范:首字母小写,后边的每个首字母大写(小驼峰式)
      • 变量名规范:一个单词的全部小写,如果多个单词组成的使用小驼峰

    常量

    常量:Java程序中固定不变的数据。

    常量分六种:

    663d638c13d7ede1c82a39b4feb8d35e.png

    变量

    常量是固定不变的数据,那么程序中可以改变的称为变量。

    例如数学中,可以使用字母代替数字运算:

    x = 1+1
    y = 1.1 + 1
    ...

    程序中,可以使用字母来保存数字的方式继续运算,可以提高计算能力,可以解决更多的问题,比如x可以保存5,也可以保存6,这样保存的数据是可以改变的,不过要注意变量的数据类型。

    Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。

    这里先介绍一下数据类型在继续说变量。

    数据类型

    Java的数据类型分为两大类:

    • 基本数据类型:整数、浮点数、字符、布尔
    • 引用数据类型:类、数组、接口、字符串

    其中基本数据类型又分四类八种:

    31821dce0700152179c7722efeefc8e9.png

    默认类型:整数类型是int、浮点类型是double

    变量的定义

    变量的三要素:数据类型变量名数据值

    格式一:定义变量并赋值

    数据类型 变量名 = 数据值;
    int a = 10;
    注意:给变量赋值不能超过数据类型的取值范围

    格式二:先定义后赋值

    数据类型 变量名;//先定义
    变量名 = 数据值;//再赋值
    ​
    int b;
    b = 20;
    long类型:建议数据后加L表示
    float类型:数据后加F表示

    注意事项:

    变量名:在一个大括号范围内,变量名不能重复

    变量赋值:定义的变量只有先赋值才能使用,且赋值要符合数据类型的取值范围。

    展开全文
  • 方法方法的概念和用法1.方法就是可以完成独立功能的代码块2.可以反复使用,每次都是独立的3.存在于类的结构体认识方法1.public static 是修饰符,赋予特殊意义2.返回类型,如void3.方法名字,如main4.形式参数,...

    方法

    方法的概念和用法

    1.方法就是可以完成独立功能的代码块

    2.可以反复使用,每次都是独立的

    3.存在于类的结构体

    认识方法

    1.public static 是修饰符,赋予特殊意义

    2.返回类型,如void

    3.方法名字,如main

    4.形式参数,(String[] args)

    5.结构体,完成功能设计

    6.功能,存在于类的结构体中

    方法的语法

    返回值类型 方法名字(形式参数){

    }

    1.返回值:必须有

    2.方法名字:必须有

    3.小括号:必须有

    4.形式参数:

    可以不设定

    完成功能的代码块

    5.大括号:功能语句

    设计一个方法

    方法语法:返回值  方法名字 (参数列表) {功能语句}

    方法的使用

    1.有static修饰,类.方法名(参数列表)

    2.没有static修饰,对象.方法名(参数列表)

    3.方法在同一类中,方法名(参数列表)

    方法重载

    同一个方法可以被多次循环使用。

    方法return

    return 返回值(可以为表达式)

    注意:return不一定执行得到,只是看语法

    方法的常见问题

    1。方法每次都是独立使用

    2。只写了方法名,忘记写参数列表

    3。返回值的 类型

    4。使用了方法,但是并没有使用结果值

    5。将(void)方法去调用值

    数组

    什么是数组

    数组可以理解成在计算机中的多个连续的存储空间,里面可以按顺序存放多个类型相同的数据。

    1)数组名   :  数组的名字

    2)数组元素 :就是存放在数组里面的数据

    3)数组索引 :就是数组里面连续存储空间的编号,从0开始

    4)length    :数组的属性长度  数组名.length拿到数组的长度

    数组的基本语法

    动态创建之声明的同时赋值

    int[] a = new int[10];

    数据类型[] 数组变量名 = new 数据类型[长度];

    如何使用

    1.存值

    int[0] = 3;

    2.取值

    int[0]

    遍历数组

    JVM储存数据分析

    1.堆:可以理解为凡是new 出来的东西都放在这里面

    int [] a = new int[9]

    a --->int类型的数组放在堆里,长度是9

    2.栈:主要存放一些变量容器名。大小,周期都已确定

    a  ---->这个数组的地址放在栈里,我们通过这个地址就可以提取到我们想要的 int[9] 的信息.

    数组特点

    1。类型限定了数组可以存放的类型

    2。1个数组可以储存多个元素

    3。数组被创建,长度就固定不变了

    4。动态数组创建好后,会自动分配默认值和元素类型

    常见问题

    1。所有数组都有一个.length属性

    2。空指针错误

    3。return的用法在当层,返回当层的值。

    其他语法

    1.动态创建之先声明后赋值

    数据类型 [] 数组变量名;

    数组变量名 = new 数据类型[数组长度];

    2.静态创建

    a.声明的同时赋值

    数据类型  []  变量名 = new 数据类型[] ;

    b.先声明后赋值

    数据类型  []  变量名;

    变量名 = new 数据类型[] ;

    3.静态简写(推荐)

    int[] num = {2,3,4,5,6};

    打印数组

    可以用for循环逐步打印。

    打印用 逗号 分割,System.out.print(arr[i]+”,”)

    方法参数传递

    概念

    1.值传递:方法传递的是值

    如果是基本数据类型,传递的是值

    2.值引用:方法传递的是值的引用

    如果是引用数据类型,传递的是地址

    注意

    参数传递,是值传递 还是 引用传递?(面试题)

    1.可以都看成是值传递

    2.基本类型就是变量的中值本身

    3.引用类型的变量在传递的时候,其实也是变量中值[ 这里的值看成存储对象的引用地址

    展开全文
  • Java数组操作最高效的方式是循环取值,如果转换成集合那么就会分配内存,效率不如前者,但是方法多,需要在性能调优上去权衡。切记:数组是数组,集合是集合。 下面是收集最常用的数组转成集合的操作方法: ...

    Java数组操作最高效的方式是循环取值,如果转换成集合那么就会分配内存,效率不如前者,但是方法多,需要在性能调优上去权衡。切记:数组是数组,集合是集合。

    下面是收集最常用的数组转成集合的操作方法:

    import org.apache.commons.lang3.ArrayUtils;
    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;
    
    //检查数组是否包含某个值的方法
    public class TestArray {
        // 使用List
        public static boolean useList(String[] arr, String targetValue) {
            return Arrays.asList(arr).contains(targetValue);
        }
    
        // 使用Set
        public static boolean useSet(String[] arr, String targetValue) {
            Set<String> set = new HashSet<String>(Arrays.asList(arr));
            return set.contains(targetValue);
        }
    
        // 使用循环判断
        public static boolean useLoop(String[] arr, String targetValue) {
            for (String s : arr) {
                if (s.equals(targetValue))
                    return true;
            }
            return false;
        }
    
        // 查找有序数组中是否包含某个值的用法
        public static boolean useArraysBinarySearch(String[] arr, String targetValue) {
            int a = Arrays.binarySearch(arr, targetValue);
            if (a > 0)
                return true;
            else
                return false;
        }
    
        // 使用ArrayUtils
        public static boolean useArrayUtils(String[] arr, String targetValue) {
            return ArrayUtils.contains(arr, targetValue);
        }
    
        public static void main(String[] args) {
            String[] arr = new String[] { "CD", "BC", "EF", "DE", "AB", "JK" };
            // use list
            long startTime = System.nanoTime();
            for (int i = 0; i < 100000; i++) {
                useList(arr, "A");
            }
            long endTime = System.nanoTime();
            long duration = endTime - startTime;
            System.out.println("useList:" + duration / 1000000);
            // use set
            long startTime2 = System.nanoTime();
            for (int i = 0; i < 100000; i++) {
                useSet(arr, "A");
            }
            long endTime2 = System.nanoTime();
            long duration2 = endTime2 - startTime2;
            System.out.println("useSet:" + duration / 1000000);
            // use loop
            long startTime3 = System.nanoTime();
            for (int i = 0; i < 100000; i++) {
                useLoop(arr, "A");
            }
            long endTime3 = System.nanoTime();
            long duration3 = endTime3 - startTime3;
            System.out.println("useLoop:" + duration / 1000000);
            // use Arrays.binarySearch()
            long startTime4 = System.nanoTime();
            for (int i = 0; i < 100000; i++) {
                useArraysBinarySearch(arr, "A");
            }
            long endTime4 = System.nanoTime();
            long duration4 = endTime4 - startTime4;
            System.out.println("useArraysBinarySearch:" + duration / 1000000);
        }
    }
    /*
     * 显然,使用一个简单的循环方法比使用任何集合都更加高效。许多开发人员为了方便,都使用第一种方法,但是他的效率也相对较低。
     * 因为将数组压入Collection类型中,首先要将数组元素遍历一遍,然后再使用集合类做其他操作。
     */

    使用时要导入下面的包:

    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.6</version>
    </dependency>

     

    参考:

    http://www.cnblogs.com/ipetergo/p/6429747.html(以上内容转自此篇文章)

    http://www.importnew.com/18700.html

    转载于:https://www.cnblogs.com/EasonJim/p/7719949.html

    展开全文
  • 首先要清楚IndexOf的使用方法indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。语法stringObject.indexOf(searchvalue,fromindex)参数searchvalue 必需,规定需检索的字符串值。fromindex可选的...
  • 长度取值方法或属性 示例 数组 Array length String[] a = {"1","2","3"}; System.out.println(a.length); 字符串 String length() String a...
  • !... 错误详情: ```### Error updating database....- (28468 ms) - 2019-6-3 22:35:45[DEBUG](AbstractHandlerExceptionResolver.java:132) Resolving exception from handler [public java.lang.String ...
  • ------数组,分为基本数组/自定义数组数组有一个属性 是 length--数组长度,比如,age.length循环,遍历(增强for循环),取值赋值,排序(冒泡排序和选择排序比较重要)***长度一定要初始化好,不管哪种方法。...
  • Java基础复习(三) 数组 1.一维数组: (1)定义:int a[]; 或 int[] a; (2)初始化:int a[]=new int[4];或 int a[]=new int[]{3,9,8,10}; 初始值:数字型的默认值为0;对象的默认值为null (3)引用:a[0],脚...
  • Java二维数组与构造方法

    千次阅读 2019-04-18 08:49:33
    1、二维数组 ...赋值/取值:————下标 遍历:————增强for循环 2、排序 a.冒泡排序 b.选择排序 3、查找 a.普通查找 b.二分查找————数组必须有序 4、面向对象的理解 a.面向对...
  • Java一维数组、二维数组一、 一维数组1.1 图解1.2 静态创建1.3 动态创建练习冒泡排序Arrays 工具类二、 二维数组2.1 图解2.2 动态创建-取值-赋值-遍历2.3 静态赋值 一、 一维数组 数组的特点: 存储多个数据 只能...
  • 数组存基本数据类型,也可以存引用数据类型对象数组:使用数组存储对象(自定义对象)先定义Person的三个私有变量,给他取值赋值方法,重写toString方法。package com.bjsxt.Array;public class Person {private ...
  • 复制数组、二维数组及Arrays类常用方法 学习参考网址:https://how2j.cn/p/6235 增强FOR循环 增强型for循环在遍历一个数组的时候会更加快捷 增强型for循环只能用来取值,却不能用来修改数组里的值 public class...
  • Java——数组(概念理解+应用举例)

    千次阅读 2020-06-04 13:24:12
    Java语言中,数组是一个非常重要的概念,我们经常使用的数组,在这里和C语言基本上是一样的,无非是“一维数组”和“二维数组”,那么对数组的初始化定义有两种方法,一个是“静态初始化”,另一个自然就是“动态...
  • 数组存基本数据类型,也可以存引用数据类型对象数组:使用数组存储对象(自定义对象)先定义Person的三个私有变量,给他取值赋值方法,重写toString方法。package com.bjsxt.Array;public class Person {private ...
  • 由于 C 语言并不具有类似 Java 等语言中现有的静态分析工具的功能,可以对程序中数组下标取值范围进行严格检查,一旦发现数组上溢或下溢,都会因抛出异常而终止程序。也就是说,C 语言并不检验数组边界,数组的两端...
  • Java charAt() 方法 charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。 语法 public char charAt(int index) 参数 index-- 字符的索引 返回值 返回指定索引处的字符 package...
  • Java 反射:动态数组

    2018-09-29 18:43:30
    java.lang.reflect包下提供了一个Array类,通过这些方法可以创建动态数组,对数组元素进行赋值、取值操作。   2.Array类提供的主要方法(均为静态方法)如下:               static Object new...
  • 1.首先通过key的hashcode()方法取得它的hashcode。2.调用hash()函数对step1取得的...调用indexFor()方法取得数组下标(return h & length-1),h为step2取得的值。这里必须说明一下,为了让HashMap运行的更有效率...
  • java基础知识——数组

    2019-01-01 23:56:00
    数组 一维数组定义 public static void main(String[] args) ... { //方法一 //定义数组:数据类型[] 变量名=new 数据类型[数组长度]; int[] arr=new int[3]; //赋值(下标从0开始) arr[0]=2; //取值 ...
  • 创建一个长度为6的数组,要求随机取值为1-30,同时元素值各不相同 方法一:创建标志flag public class Test{ public static void main{ int[] arr6 = new int[6]; for (int i = 0; i < arr6.length; i++) { ...
  • 对于indexOf()的用法一直停留在查找第几个字符串,却不知道它能用到数组去重中,首先还是温顾下indexOf()的语法:Document/*语法:stringObject.indexOf(searchvalue,fromindex)searchvalue:必须。规定需检索的字符...
  • 数组

    2019-06-10 18:37:37
     JAVA中使用关键字new创建数组对象。 格式为:数组名 = new 数组元素的类型[数组元素的个数] 数组元素的引用: 数组元素下标从0开始;长度为n的数组的合法下标取值范围为0 ~ n—1。 数组的长度为:数组....
  • java中的一维数组

    2020-09-27 22:15:20
    一、数组的概念 一组连续的存储空间,存储多个相同数据类型的值。 特点: 类型相同,长度固定。 二、数组的创建 ...②对每个元素进行赋值或取值的操作被称为“元素的访问”。 ③访问元素时,需要使用"下
  • Math.random()方法的调用 该方法随机生成[0,1) -->左闭右开 2、不重复 每生成一个随机数,都要和之前数组元素的值进行比较 如果相同,则需要重新赋值 代码如下: public class ArrayTest4 { public static void...
  • 而在java.lang.reflect包下提供了一个Array类,这个类中包括了一系列static方法,通过这些方法可以创建动态数组,对数组元素进行赋值、取值操作。 Array类提供的主要方法如下: Object newInstace(Class component...
  • Java基础语法知识总结 Java八大基本数据类型 整数类 byte java使用过程中使用最少的数据类型,它在内存中占用1个字节,也就是8位(bit),值得范围是:-128~127,也就是-2的7次方到2的7次 方减一,默认值0。 short 短...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 237
精华内容 94
关键字:

java数组取值方法

java 订阅