【问题标题】:How to Add elements at random positions in String array from a String ArrayList. In Android Java如何从字符串 ArrayList 在字符串数组中的随机位置添加元素。在 Android Java 中
【发布时间】:2021-09-07 18:01:44
【问题描述】:

我是android java的新手。这让我很烦。 在这里,我的 ArrayList 将只有 3 个字符串(黑色、灰色、白色)。但请像有 100 或 1000 个项目一样回答。那么执行此操作的代码是什么。

ArrayList<String> alCelebrityAllNAMES = new ArrayList<String>();
String myArray = {"1",  "2",  "3"};

  public void regexImagesNames(){
        Pattern patternNames = Pattern.compile("/images/banners/(.*?)_234x60.gif");
        Matcher matcherNames = patternNames.matcher(fullHtmlCode);
        
        while(matcherNames.find()) {
            alCelebrityAllNAMES . add( matcherNames.group(1) ); //yields 3 words(strings)

        }
    }

【问题讨论】:

  • 你到底想做什么?从ArrayList 中获取元素并将它们添加到array 中的随机位置或相反?

标签: java android arrays arraylist


【解决方案1】:

我会这样做:

解决方案 1,任重道远……

        String[] myArray = new String[]{"1", "2", "3"};
        ArrayList<String> alCelebrityAllNAMES = new ArrayList<>(myArray.length);
        ArrayList<Integer> alreadyOccupiedIndexes = new ArrayList<>();

        for (int i = 0; i < myArray.length; i++)
        {
            String s = myArray[i];
            int randomIndex = new Random().nextInt(myArray.length); // Getting a random index

            if(!alreadyOccupiedIndexes.contains(randomIndex))
            {
                alCelebrityAllNAMES.add(randomIndex, s);
                alreadyOccupiedIndexes.add(randomIndex);
                i++;
            }

        }

解决方案 2:

        alCelebrityAllNAMES.addAll(Arrays.asList(myArray)); // Fill the arrayList with the elements of the array
        Collections.shuffle(alCelebrityAllNAMES); // shuffle the elements in it..

        // and if you need an array again:
        alCelebrityAllNAMES.toArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多