如何从字符串 ArrayList 在字符串数组中的随机位置添加元素。在 Android Java 中

Posted

技术标签:

【中文标题】如何从字符串 ArrayList 在字符串数组中的随机位置添加元素。在 Android Java 中【英文标题】:How to Add elements at random positions in String array from a String ArrayList. In 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 中的随机位置或相反? 【参考方案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();

【讨论】:

以上是关于如何从字符串 ArrayList 在字符串数组中的随机位置添加元素。在 Android Java 中的主要内容,如果未能解决你的问题,请参考以下文章

如何检查arraylist中的数组是不是包含某个值?

如何使用适配器为recyclerview从字符串数组列表中的元素获取字符串

如何计算 ArrayList 中的唯一值?

如何在c#中将ArrayList转换为字符串数组(字符串[])

如何在 Kotlin 中将字符串数组 JSON 转换为 ArrayList?

将 ArrayList 转换为常规字符串数组 [重复]