知识大全 Java中数组的返回

Posted 香料

篇首语:这个世界看你笑话的人永远比在乎你的人要多。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java中数组的返回相关的知识,希望对你有一定的参考价值。

Java中数组的返回  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  假定我们现在想写一个方法 同时不希望它仅仅返回一样东西 而是想返回一系列东西 此时 象C和C++这样的语言会使问题复杂化 因为我们不能返回一个数组 只能返回指向数组的一个指针 这样就非常麻烦 因为很难控制数组的 存在时间 它很容易造成内存 漏洞 的出现   Java采用的是类似的方法 但我们能 返回一个数组 当然 此时返回的实际仍是指向数组的指针 但在Java里 我们永远不必担心那个数组的是否可用——只要需要 它就会自动存在 而且垃圾收集器会在我们完成后自动将其清除     作为一个例子 请思考如何返回一个字串数组     //: IceCream java  // Returning arrays from methods    public class IceCream    static String[] flav =      Chocolate Strawberry      Vanilla Fudge Swirl Mint Chip      Mocha Almond Fudge Rum Raisin      Praline Cream Mud Pie    ;   static String[] flavorSet(int n)     // Force it to be positive & within bounds:    n = Math abs(n) % (flav length + );    String[] results = new String[n];    int[] picks = new int[n];    for(int i = ; i < picks.length; i++)     picks[i] = -1;    for(int i = 0; i < picks.length; i++)      retry:     while(true)       int t =       (int)(Math.random() * flav.length);      for(int j = 0; j < i; j++)       if(picks[j] == t) continue retry;      picks[i] = t;      results[i] = flav[t];      break;             return results;      public static void main(String[] args)     for(int i = 0; i < 20; i++)      System.out.println(      "flavorSet(" + i + ") = ");     String[] fl = flavorSet(flav.length);     for(int j = 0; j < fl.length; j++)      System.out.println("\\t" + fl[j]);          ///:~    flavorSet()方法创建了一个名为results的String数组。wINgWIt.该数组的大小为n——具体数值取决于我们传递给方法的自变量。随后,它从数组flav里随机挑选一些“香料”(Flavor),并将它们置入results里,并最终返回results。返回数组与返回其他任何对象没什么区别——最终返回的都是一个句柄。至于数组到底是在flavorSet()里创建的,还是在其他什么地方创建的,这个问题并不重要,因为反正返回的仅是一个句柄。一旦我们的操作完成,垃圾收集器会自动关照数组的清除工作。而且只要我们需要数组,它就会乖乖地听候调遣。  另一方面,注意当flavorSet()随机挑选香料的时候,它需要保证以前出现过的一次随机选择不会再次出现。为达到这个目的,它使用了一个无限while循环,不断地作出随机选择,直到发现未在picks数组里出现过的一个元素为止(当然,也可以进行字串比较,检查随机选择是否在results数组里出现过,但字串比较的效率比较低)。若成功,就添加这个元素,并中断循环(break),再查找下一个(i值会递增)。但假若t是一个已在picks里出现过的数组,就用标签式的continue往回跳两级,强制选择一个新t。用一个调试程序可以很清楚地看到这个过程。  main()能显示出20个完整的香料集合,所以我们看到flavorSet()每次都用一个随机顺序选择香料。为体会这一点,最简单的方法就是将输出重导向进入一个文件,然后直接观看这个文件的内容。 cha138/Article/program/Java/JSP/201311/19484

相关参考

知识大全 DirectInfo.GetFiles返回数组的默认排序

DirectInfo.GetFiles返回数组的默认排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 C#函数的参数返回结构数组

C#函数的参数返回结构数组  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  头晕脑涨地研究了一天就

知识大全 Java 删除数组中重复的元素

Java删除数组中重复的元素  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我是将数组封装为类的

知识大全 Java中数组的转型和范型

Java中数组的转型和范型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天写代码遇到一个奇怪

知识大全 java读取文件内容写入到byte数组中

  有时候我们需要将读取文件的内容到一个byte[]数组中然后对这个数组进行一些修改这时我们可以借助于ByteArrayOutputStream这个类来实现  ByteArrayOutputStrea

知识大全 PHP以指定字段为索引返回数据库所取的数据数组

PHP以指定字段为索引返回数据库所取的数据数组  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很

知识大全 php数组相关函数的使用

  创建数组就不再说了array()函数  提取数组可以用list()  测试数组元素可以用is_array()  接受一个参数传进来的变量如果变量是数组返回true如果不是返回false  添加和删

知识大全 解析javascript 数组以及json元素的添加删除

  javasscript删除数组的种方法用shift()方法shift删除原数组第一项并返回删除元素的值如果数组为空则返回undefinedvarchaomao=[]varchaomaoshift(

知识大全 第二部分 栈、队列和数组[9]

   ③出队  StatusDeQueue(SqQueue&QQElemType&e)//若队列不空则删除Q的队头元素  //用e返回其值并返回OK;否则

知识大全 自己编写的Java数组操作工具

自己编写的Java数组操作工具  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  看到网上的一段关于