精华内容
下载资源
问答
  • scala中的数组用Array,对应于java中的数组类型,所以在scala中调用java数组函数时,直接Array,直接调用,隐式转换即可解析成java数组形式。但是当在调用java中含可变参数的函数时,会发生错误,Array解析成...

    scala调用java含数组的函数
    scala中的数组用Array,对应于java中的数组类型,所以在scala中调用java含数组的函数时,直接传Array,直接调用,隐式转换即可解析成java数组形式。但是当在调用java中含可变参数的函数时,会发生错误,Array解析成了只有一个对象(对象中包含Array数组)的数组,不符合预期,解决方案可以通过再封装一个函数用java数组接一下,从java代码调用带可变参数的函数。
    举例说明如下java函数所示:

    public void varP(Object... values){
        for (int i = 0; i < values.length; i ++){
            System.out.println(values[i]);
        }
    }
    

    scala直接调用如下,打印结果为:[Ljava.lang.Object;@687080dc

    val arrayTest = new Array[Object](2)
    arrayTest(0) = "0"
    arrayTest(1) = "1"
    byteR.varP(arrayTest)
    

    values的值显示如下:
    在这里插入图片描述

    以上明显不符合预期。
    解决方案:
    1.调用函数参数加个_*,如下

    val arrayTest = new Array[Object](2)
    arrayTest(0) = "0"
    arrayTest(1) = "1"
    byteR.varP(arrayTest: _*)
    

    2. 或者增加了中转函数,如下:

    public void varP2(Object[] values){
        varP(values);
    }
    
    public void varP(Object... values){
        for (int i = 0; i < values.length; i ++){
            System.out.println(values[i]);
        }
    }
    

    再次调用,打印结果是0 1

    val arrayTest = new Array[Object](2)
    arrayTest(0) = "0"
    arrayTest(1) = "1"
    byteR.varP2(arrayTest)
    

    values的值显示如下
    在这里插入图片描述

    解决问题

    展开全文
  • 3、java函数数组

    千次阅读 2019-06-04 15:02:36
    **1.**类,类就是同一类事物的统称。是抽象的。如:鸟类,虫类,家禽类等。...2. 成员变量:在java中,对象的属性也被称为成员变量。成员方法:成员方法可以有参数可以没有,可有返回值也可没有。一般类中都会写上s...

    java函数和数组

    1、函数
        1)函数的定义:就是定义在类中的具有特定功能的一段独立小程序。函数也被称为方法。
        格式:
            修饰符 返回值类型 函数名 (参数类型 形式参数1 , 参数类型 形式参数2 , .... ){
                执行语句;
                return 返回值;
            } 
    
        返回值类型:函数运行后的结果的数据类型。
        参数类型:是形式参数的数据类型。
        形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
        实际参数:传递给形式参数的具体数值。
        return:用于结束函数。
        返回值:该函数运算后的结果,该结果会返回给调用者。
    注意:返回值是void时,return可以省略。
    
    范例:
        //对两个数值进行相加,并且返回 和 的值
        public static int plus(int a , int b){
            return a+b;
        }
    
    
        2)函数的特点:
            定义函数可以将功能代码封装。
            便于对该功能的复用。
            函数只有被调用才被执行。
            函数的出现提高了代码的复用性。
        注意:函数中只能调用函数,不可以在函数内部定义函数。
            定义函数时,函数的结果应该返回调用者,交由调用者进行处理。
    
    
        3)函数的应用:
            栈:先进后出
    
    
        4)函数的重载:overload
            概念:
                在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
            特点:
                与返回值类型无关,只看参数列表。
            好处:
                方便于阅读,优化了程序设计。
            示例:
                //返回两个整数的和
                public static int add(int x,int y){return x+y;}
    
                //返回三个整数的和——参数个数不同
                public static int add(int x,int y,int z){return x+y+z;}
    
                //返回两个小数的和——参数类型不同
                public static double add(double x,double y){return x+y;}
            范例:打印自定义乘法口诀表
                public static void printCFB(int num){
                    for(int x = 1; x <= num; x++){
                        for(int y = 1; y <= x; y++){
                            System.out.print(y+"*"+x+"="+y*x+"\t");
                        }
                        System.out.println();
                    }
                }
    
                public static void printCFB(){
                    for(int x = 1; x <= 9; x++){
                        for(int y = 1; y <= x; y++){
                            System.out.print(y+"*"+x+"="+y*x+"\t");
                        }
                        System.out.println();
                    }
                }
    
                解析:
                    传几过来就打印到几的乘法口诀表,不传值打印 9*9 乘法口诀表
    
    
    
    2、数组
        1)定义:
            概念:同一数据类型数据的集合。其实数组就是一个容器。
            好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
            格式1:
                元素类型[] 数组名 = new 元素类型[元素的个数或者说数组长度];
                示例:int[] arr = new int[5];
            格式2:
                元素类型[] 数组名 = new 元素类型[]{元素,元素,元素,.......};
                示例:int[] arr = new int[]{1,2,3,4};
                    int[] arr = {1,2,3,4};
            
    
        2)内存分配及特点:
            内存划分:
                寄存器
                本地方法区
                方法区
                栈内存:特点是处理速度快
                    存储都是局部变量(方法内的变量,只在当前方法内有用,如:形式参数,方法内变量,for循环内的参数)。
                    一旦变量离开自己的作用域,其内存就会被自动释放。
                    所有变量都在栈里面。除了静态变量。
                    局部代码块:
                        {
                            int a = 3;//限定局部变量的生命周期,运行完立马释放
                        }
                堆内存:
                    存储的是对象。凡是 new 建立的都存在堆中。
                    特点是:
                        每一个实体都有一个首地址值。
                        堆内存中的每一个变量都有默认的初始化值,根据类型的不同而不同。整数是0、小数0.0或者0.0f、oolean false、char '\u0000'。
                        垃圾回收机制:引用数据类型(相当于c++中的指针)存储在此。当 arr = null; 引用消失。堆中的对象变成’垃圾‘,’垃圾回收机制‘会进行回收。c++是手动清理,使用析构函数进行回收。
    
        
        3)操作常见问题:
            数组越界:
                ArrayIndexOutOfBoundsException
                当访问到数组中不存在的角标时,就会发生该异常。
            空指针异常:
                NullPointerException
                当引用型变量没有任何实体指向时,还在用其操作实体,就会发生该异常。
            
            
        4)常见操作:
            核心思想:就是对角标的操作
            遍历:循环遍历
            长度:arr.length
            存: arr[0] = 1;
            取: arr[i];
    
            最值操作:
                最大值或最小值
                int[] arr = {1,2,3,6,5,4};
                int max = 0;//存储最大值
                for(int i = 0; i <= arr.length-1; i++){
                    if(arr[i]>max){
                    max = arr[i]; 
                    }
                }
                System.out.println("该数组最大值为:"+max);
            
            排序和查找:单独写一篇详细解析!
                选择排序:
    
                冒泡排序:
    
            
        
        
        5)数组的应用:
            如果数据出现了对应关系,而且对应关系的一方是有序的数字编号,并作为角标使用,这时候要想到使用数组。
    
    
    
        6)数组中的数组:
            二维数组:
                格式1:int[][] arr = new int[3][2];
                    定义了名称为arr的二维数组。
                    二维数组中有3个一维数组。
                    每一个一维数组中有2个元素。
                    给第一个一维数组的元素角标写法为:arr[0][1] = 78;
                格式2:int[][] arr = new int[3][];
                    二维数组中三个一维数组。
                    每一个一维数组的初始化值为null。
                    可以对这三个一维数组分别进行初始化。
                        arr[0] = new int[3];
                        arr[1] = new int[1];
                        arr[2] = new int[2];
                格式3:int[][] arr = {{1,2},{2,3,7},{6,7}};
            遍历:
                for(int i = 0; i < arr.length; i++){
                    for(int j = 0; j < arr[i].length; j++){
                        System.out.print("arr" + arr[i][]j);
                    }
                }
    

    谢谢观看,转载请表明出处~


    欢迎关注本人公众号,不定期会有纯技术分享哦~

    扫码关注
    公众号

    展开全文
  • Java方法(函数)数组

    千次阅读 2019-03-26 23:11:27
    1.概念:方法,也叫函数,但是一般在java中都叫方法,可以看成是一个可以完成独立功能的代码块,可以反复使用,每次使用都是独立的!存在于类的结构体 1)X + Y = Z;代入不同的值,可以求到不同的结果 2)函数可以反复...

    方法的概念及作用

    1.概念:方法,也叫函数,但是一般在java中都叫方法,可以看成是一个可以完成独立功能的代码块,可以反复使用,每次使用都是独立的!存在于类的结构体

    1)X + Y = Z;代入不同的值,可以求到不同的结果
    2)函数可以反复使用的!每次使用都是独立的
    3)完成了一个独立的功能

    2.作用:完成功能,数据的处理!方法可以拿来反复使用。每次使用都是独立的

    语法结构:

    public static void main(String[] args){
    	}
    	/*
    	返回值类型 方法名字( 形式参数 ){
    	}
    	*/
    

    1)public static修饰符
    a)修饰给与特殊意义
    2)void:此处位置返回值类型,void 表示没有返回值
    3)main:方法名字
    4)(String[] args) : 一个形式参数,String[] 数据类型 args形式参数名字
    a)形式参数: 本质没有值的;可以看成是有值的,在方法的内部完成功能的设计
    5){}:方法的结构体
    a)完成功能的设计
    6)存在于类的结构体

    1)返回值: 必须有
    2)方法名字:必须有
    3)小括号: 必须有
    4)形式参数:根据需要设定,也可以没有形式参数
    5)大括号: 必须有: 但是功能语句可以任意写

    Java(函数)方法的使用

    1.使用方法的三种方式
    1)方法有static修饰:类名.方法名+参数列表[个数,顺序,类型必须一致]
    2)方法没有static修饰:对象名.方法名+参数列表[个数,顺序,类型必须一致]
    3)方法在同一个类中:方法名+参数列表[个数,顺序,类型必须一致]
    a)+参数列表: 传入对应类型的数据
    2.注意事项:
    1)对于方法的使用者而言,无需关心方法内部的实现
    2)同一个类中:静态方法不能调用非静态的方法
    同一个类中:非静态方法可以调用静态方法

    方法return
    ① 方式:将方法运算的结果返回给方法调用着,方法内部将运算结果使用语句:
    return 值/变量/表达式;
    ② 方法返回值的位置,必须写与方法内部返回值的数据一致的数据类型
    ③ 注意:返回的是数据,不是变量或者表达式

    示例一:return 不一定执行得到

    public static int add(){
    if(true){
             return 1;//语法检查只看结构不看值,return语句不一定会执行得到
    }
    } 
    

    示例二:return 不一定执行得到

    public static int add(){
    if(true){//语法检查只看结构不看值,return语句一定会执行得到
             return 1;
    }else if(false){ 
             return 2;
    }
    }
    

    示例三:return 一定执行得到

    public static int add(){
    if(true){//同上语法检查只看结构不看值,return语句不一定会执行得到
              return 1;
    }else{
              return 2;
    }
    }
    

    结论:
    ①如果一个方法的返回类型不是void,那么要求[不管方法里面做了什么事情]
    都必须返回一个和返回值类型匹配的值
    ②对于结构体语句中写返回值:编译检查语法,只看结构不看值:
    结构体中写了返回值不一定执行的到,编译语法会不通过!

    方法参数传递数组

    概念:数组可以理解成在计算机中的多个连续的存储空间,里面可以按顺序存放多个类型相同的数据。
    在这里插入图片描述
    1)数组名 : 数组的名字
    2)数组元素 :就是存放在数组里面的数据
    3)数组索引 :就是数组里面连续存储空间的编号,从0开始
    4)length :数组的属性长度 数组名.length拿到数组的长度

    数组基本的语法

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

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

    动态创建之先声明后赋值

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

    静态创建
    静态创建简写方式

    1)声明的同时赋值
    数据类型[] 数组变量名 = {多个以英文逗号分隔的数据};
    2)先声明后赋值[编译器不允许,错误写法]
    数据类型[] 数组变量名;
    数组变量名 = {多个以英文逗号分隔的数据};

    如何使用
    对于计算机内存存储空间的使用最重要的就是存值取值
    1.存值
    (1)数组名[索引位置] = 值;
    2.取值
    (1)数组名[索引位置]
    数组遍历

    JVM存储数据分析

    1.堆:可以理解为凡是new 出来的东西都放在这里面,堆内存可以被虚拟机动态的分配内存大小,无需事先告诉编译器的数据的大小、生命周期等相关信息
    2.栈:主要存放一些变量容器名 (例如局部变量名,还可以存放局部变量 基本类型 数据值),栈内存被要求存放在其中的数据的大小、生命周期必须是已经确定的
    在这里插入图片描述

    数组特点
    1)数据类型限定了数组可以存放的数据类型
    2)一个数组可以存储多个元素
    3)一旦数组对象被创建好,那么其长度就固定不变了
    4)动态创建好数组之后,会自动分配默认值,和数组中的元素类型有关(类似之前成员变量的默认值)

    方法参数传递

    什么是方法参数传递
    1)概念:参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程,方法有按值传递参数,按地址传递参数和按数组传递参数。

    2)值传递:方法传递的是值
    a)形式参数类型是基本数据类型
    b)基本类型数据传递的是值

    3)值引用:方法传递的是值得引用
    a)形式参数类型是引用数据类型
    b)引用传递其实传的是地址,形式参数类型是引用数据类型或数组。
    c)实际参数(数据)是对象(或数组),这时实际参数与形式参数指向同一个地址
    d)在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被 保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

    4)值传递示例: 定义一个change 方法 和 int 形参

    5)值引用再看一个示例,定义一个change 方法 和 int 数组 的形参,交换数组中前面2个元素

    6)注意:方法调用时,实际参数把它的值传递给对应的形式参数,相当于拷贝了一份值给形式参数, 所以方法执行中形式参数值的改变不影响实际参数的值。
    a)基本数据不影响原来的值
    b)引用数据不影响原来的地址值:
    引用地址,引用的值,如果被改变,原来引用的的值所引用的值也会被改变,
    因为都是同一个引用

    在这里插入图片描述

    展开全文
  • Java实现swap交换函数数组方法 public class fun_1 { //定义数组类型的函数 static int[] swap(int a,int b){ int t =a; a =b; b =t; //返回数组类型 return new int[]{a,b}; } public static void main...

    Java实现swap交换函数的数组方法

    public class fun_1 {
    	//定义数组类型的函数
        static int[] swap(int a,int b){
            int t =a;
            a =b;
            b =t;
            //返回数组类型
            return new int[]{a,b};
        }
        public static void main(String[] args) {
            int a = 3;
            int b = 4;
            //初始化swap数组
            int[] swap = swap(a, b);
            //输出数组的前两位元素
            System.out.println(swap[0]+" "+swap[1]);
        }
    }
    
    
    展开全文
  • java函数可以返回数组

    千次阅读 2012-10-21 20:26:58
    public String[] getString() { String[] str = new String[n]; //....................... //....................... return str; }
  • Java基础(函数数组

    千次阅读 2015-02-28 13:05:22
    一、函数 函数的定义 什么是函数函数就是定义在类中的具有特定功能的一段独立小程序,也可以称之为方法 函数的格式 /* 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,........){ ...
  • JAVA给方法传递数组

    千次阅读 2015-01-17 09:15:46
    Java 使用值传递(pass by value)的方式将实参传递方法。传递基本数据类型变量的值与传递数组值会有很大的不同 对于基本数据类型参数,传递的是实参的值 对于数组类型参数,参数值是数组的引用,方法传递的是...
  • Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可。...Shell 中的函数和C++、Java、Python、C# 等其它编程语言中的函数类似,只是在语法细节有所差别。
  • 原文:...java语言中的数组复制函数。 1、 arraycopy()方法 函数原型:arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src: 原数组 ...
  • public class Test { public static void main(String[] args) { String[] strs=new String[]{"abc","def","hij"}; System.out.println(testMe(strs)); } public static int testMe(String ......
  • 函数数组 getMax java初学

    千次阅读 2018-11-23 13:35:57
    函数  数的概述 发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表现形式则...
  • 我们可以将数组作为参数,传入到函数中,其实就像我们main函数中 public void main(String [] args){};就是用数组作为函数参数; 又如, [java] view plain copy public class ArrayPar { ...
  • Java编写 函数数组(键盘输入n个数) 冒泡排序
  • Java语言基础(二)——函数数组

    千次阅读 2016-12-01 19:53:22
    Java语言基础函数函数的定义 函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。 函数的格式:修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2, ... ) { 执行语句; return ...
  • public class TextInsert { private Object[] ins; private int size; public TextInsert(int size){ ins=new Object[size]; } public static void main(String[] args){ TextInsert list=new TextInsert...
  • Java语言用函数实现返回数组中最大值最小值和平均值,请我代码 Java语言用函数实现返回数组中最大值最小值和平均值,请我代码 Java语言用函数实现返回数组中最大值最小值和平均值,请我代码
  • 利用sort函数数组进行排序【java

    千次阅读 2016-01-15 21:55:31
    import java.util.Arrays; public class 数组排序 { public static void main(String args[]){ int a[] = {2,3,5,67,43,21,89,86,34,56}; Arrays.sort(a); for(int b = 0;b ;b ++){ System.out.print(a[b
  • JavaScript---网络编程(2)-函数数组

    千次阅读 2016-06-02 11:12:16
    现在学Javascript的函数数组。 JavaScript语法 每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量,语句,函数数组等常见语言组成元素。1.一般函数 格式:function ...
  • !浅识!shell函数数组

    千次阅读 2020-08-21 11:50:15
    Shell 函数数组SHELL函数函数的用法基本格式函数的调用示例函数变量的作用范围示例函数的参数递归函数SHELL 数组数组定义的方法数组的基本使用方法:1.获取数组长度2.读取某下标赋值3.数组遍历4.数组切片5.数组...
  • java原理函数之获取数组的最大值

    千次阅读 2017-06-17 08:48:10
    private ArrayTool(){}//该类中的方法是静态的,所以该类是不需要创建对象的,为了保证不让其它程序创建该类对象,可以将构造函数私有化; /*获取函数的最大值*/ public static int getMax(int[] arr)//提升权限...
  • Java中构造函数重构+数组小练习

    千次阅读 2016-03-19 10:16:58
    Java中构造函数重构+数组小练习
  • java数组排序函数

    千次阅读 2020-06-08 16:20:14
    C语言有qsort()函数,C++有sort()函数java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。
  • JAVA前后台传递数组方法总结

    万次阅读 2016-11-28 15:01:38
    JAVA前后台传递数组方法总结
  • java循环实体类数组_实体数组

    千次阅读 2018-07-20 23:24:16
    在许多情况下,当我们希望将一组相似的数据传递给函数时,这些相似数据的数量可能会或可能不会受到限制。 在这种情况下,最基本的数据类型是数组(在某些情况下,可用于实现更高级的数据结构)。 如...
  • Shell 函数数组 SHELL函数 函数的用法 基本格式 函数的调用 示例 函数变量的作用范围 示例 函数的参数 递归函数 SHELL 数组 数组定义的方法 数组的基本使用方法: 1.获取数组长度 2.读取某下标赋值 3.数组遍历 4....
  • 用range函数创建数组

    千次阅读 2018-04-18 08:54:45
    数组遍历语言--快速创建数组 --range(1,5)这个range函数是什么含义?谁是键?谁是值?range是快速创建数组函数。php提供的快速创建数组函数包括range() 、explode()、array_combine()、array_fill() 和...
  • java数组数组元素的相关操作

    千次阅读 2019-06-12 15:19:03
    数组数组元素的相关操作 数组相关操作 [数组简介 数组声明 数组创建 数组的类及相关方法 数组简介: 数组是一种重要的数据结构,在很多语言中都非常重要,并且像 栈,链表这些实现的 基础就是数组,更能看出数组...
  • 这段时间通过jna框架搞java调用dll的函数的程序,并且涉及到了回调函数,回调函数即dll传给java参数,由java来处理这些参数,一般的c++封装的dll文件涉及的回调函数参数有String和int,很少有涉及字节数组,而这次的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 510,243
精华内容 204,097
关键字:

java给函数传数组

java 订阅