Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Java数组--从Ruby转换到Java

如何使用Java数组--从Ruby转换到Java
EN

Stack Overflow用户
提问于 2012-12-17 03:48:26
回答 2查看 259关注 0票数 2

我刚开始使用Java,所以我正在转录一些Ruby的内容。我有这样一个Ruby函数,它生成类似于IPv6地址的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def generate_ip()
    list = ["a", "b", "c", "d", "e", "f", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
    address = ""
    8.times do
        4.times do
            address << list.shuffle[5]
        end
        address << ":"
    end
    return address[0..-2].to_sym
end

这个方法只需要一个字符串数组,然后重复地对它们进行混乱,每次选择第五个元素来构造返回的字符串。

据我所知,Java中没有用于字符串数组的“霉运()”方法,因此我想编写自己的字符串数组。但后来我开始陷入子问题的泥潭,比如:

  1. 显然,没有内置的方式从字符串数组中删除项,这似乎很奇怪--这是正确的吗?我看到了其他几个这样的帖子,其中对这些特性的响应是10行代码块。因此,我决定使用ArrayLists,因为根据文档,它们有一些合理的方法,如size()、get()和remove(),尽管.
  2. ...I还没有找到使用文字实例化它们的方法,也没有找到使用单个方法调用添加多个项的方法。我看到的每个教程(包括官方的Oracle教程)都使用对ArrayList.add()的多次调用。这不可能是做这件事的方法,对吧?
  3. 等。

所以,在我深入到子问题领域,问50个不同的问题之前,我想我应该问如何解决最重要的问题。有简单的方法将上面的Ruby代码转换成Java吗?

FWIW,我正在进行的“洗牌”方法如下。我只是循环array.length时间,每次从旧数组复制/删除一个随机元素到一个新数组。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public ArrayList<String> shuffle(ArrayList<String> array) {
        Random generator = new Random();
        ArrayList<String> shuffled = new ArrayList<String>();

        for (int i = 0; i > array.size(); i++) {
            int index = generator.nextInt(array.size());

            String popped = array.get(index);
            array.remove(index);

            shuffled.add(popped);
        }


        return shuffled;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-17 03:50:39

如果创建List ( ArrayListLinkedList),则可以使用Collections.shuffle()

ArrayList和LinkedList都是List接口的实现。我怀疑这两种方法都可以满足您的需要,尽管ArrayList更好(由数组支持)。这是Java列表教程

在Java中,数组的长度是固定的,而List在大小上是可变的,因此List在一般情况下更适合您进行上述转换。若要创建具有给定一组起始元素的列表,请参见Arrays.asList()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List stooges = Arrays.asList("Larry", "Moe", "Curly");
票数 3
EN

Stack Overflow用户

发布于 2012-12-17 03:50:31

Collections.shuffle(List list, Random rnd)内置库可在java中使用。

使用指定的随机性源随机排列指定的列表。假设随机性的来源是公平的,所有的排列都以相同的可能性发生。

开放jdk代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13913600

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文