Java 按百分比随机拆分uri的arraylist

Java 按百分比随机拆分uri的arraylist,java,android,Java,Android,如何按70%和30%的百分比将ArrayList随机分成两部分 在从设备中选取图像之后,我想将这个uri列表按70和30的百分比随机分成两部分 ArrayList<Uri> imageList = new ArrayList<>(); @覆盖 受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){ super.onActivityResult(请求代码、结果代码、

如何按70%和30%的百分比将
ArrayList
随机分成两部分

在从设备中选取图像之后,我想将这个uri列表按70和30的百分比随机分成两部分

ArrayList<Uri> imageList = new ArrayList<>();

@覆盖
受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==拾取图像){
if(resultCode==RESULT\u OK){
断言数据!=null;
if(data.getClipData()!=null){
int countClipData=data.getClipData().getItemCount();
int currentImageSelect=0;
同时(currentImageSelect
集合。shuffle()可以给我们带来随机性。因此,请按如下方式操作:

List<Uri> list = new ArrayList<>(imageList);
int pivot = (int) (list.size() * 0.3);

List<Uri> thirtyPercent = new ArrayList<>();
List<Uri> seventyPercent = new ArrayList<>();

Collections.shuffle(list);

for (int i = 0; i < list.size(); i++) {
    if (i <= pivot) thirtyPercent.add(list.get(i));
    else seventyPercent.add(list.get(i));
}
List List=新的ArrayList(imageList);
int pivot=(int)(list.size()*0.3);
List thirtyPercent=newarraylist();
List seventyPercent=new ArrayList();
集合。洗牌(列表);
对于(int i=0;i如果(i根据您的问题,您可以首先随机洗牌您拥有的ArrayList,然后按70%和30%的比例分割和拾取元素

下面是实现这一点的函数

public static ArrayList<ArrayList<String>> shuffleAndDivide(ArrayList<String> arrList) {
    ArrayList<ArrayList<String>> arr=new ArrayList<>();
    ArrayList<String> arr70=new ArrayList<>();
    ArrayList<String> arr30=new ArrayList<>();
    Collections.shuffle(arrList);  // Shuffle the array for randomness
    int len=arrList.size();
    int fst=(int) Math.floor(0.7*len); // Calculate the first 70% of elements
    for(int i=0; i<len; i++) { // Loop for adding them in proportions
        if(i<fst) {
            arr70.add(arrList.get(i));
        }else{
            arr30.add(arrList.get(i));
        }
    }
    // Adding them to single ArrayList
    arr.add(arr70);
    arr.add(arr30);
    return arr;
}
公共静态ArrayList ShuffleAndVide(ArrayList arrList){
ArrayList arr=新的ArrayList();
ArrayList arr70=新的ArrayList();
ArrayList arr30=新的ArrayList();
Collections.shuffle(arrList);//对数组进行随机洗牌
int len=arrList.size();
int fst=(int)Math.floor(0.7*len);//计算前70%的元素

对于(int i=0;iSo),列表中有100个URI,现在要将它们分为70个和30个?@blackapps不是真正的100个,可能更多或更少
List<Uri> list = new ArrayList<>(imageList);
int pivot = (int) (list.size() * 0.3);

List<Uri> thirtyPercent = new ArrayList<>();
List<Uri> seventyPercent = new ArrayList<>();

Collections.shuffle(list);

for (int i = 0; i < list.size(); i++) {
    if (i <= pivot) thirtyPercent.add(list.get(i));
    else seventyPercent.add(list.get(i));
}
public static ArrayList<ArrayList<String>> shuffleAndDivide(ArrayList<String> arrList) {
    ArrayList<ArrayList<String>> arr=new ArrayList<>();
    ArrayList<String> arr70=new ArrayList<>();
    ArrayList<String> arr30=new ArrayList<>();
    Collections.shuffle(arrList);  // Shuffle the array for randomness
    int len=arrList.size();
    int fst=(int) Math.floor(0.7*len); // Calculate the first 70% of elements
    for(int i=0; i<len; i++) { // Loop for adding them in proportions
        if(i<fst) {
            arr70.add(arrList.get(i));
        }else{
            arr30.add(arrList.get(i));
        }
    }
    // Adding them to single ArrayList
    arr.add(arr70);
    arr.add(arr30);
    return arr;
}
ArrayList<String> mylist = new ArrayList<>();
mylist.add("Stackoverflow");
mylist.add("Java");
mylist.add("Quiz");
mylist.add("C++");
mylist.add("Practice");
mylist.add("CSharp");
mylist.add("Android");
mylist.add("Php");
mylist.add("Web");
mylist.add("Go");
ArrayList<ArrayList<String>> arrayList=shuffleAndDivide(mylist);
System.out.println("70% Array: "+arrayList.get(0));
System.out.println("30% Array: "+arrayList.get(1));