Jvav集合题目求大神指点

1.向list集合中存储10个1-100之间的随机数.要求元素不能重复.
    2.使用冒泡排序把集合中的元素按照从小到大排序.
    3.使用带索引的for循环遍历集合输出元素.

 

package com.itheima.Work;

import java.util.ArrayList;
import java.util.Random;

public class Ex05 {
    public static void main(String[] args) {
        Random random = new Random();

        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            int r = random.nextInt(90) + 10;
            list.add(r);
        }
        System.out.println(list);
        for (Integer it : list) {
            list.get(0);
            System.out.println(it);
        }
    }
}

目前做到这里不会做了,我只会用冒泡排序排列数组,不会排列集合,

吧集合转化为数组好像也做不出来

还有第三题索引的for循环是什么意思?

求大神指点

 

int r = random.nextInt(90) + 10   这行错了,题目要求1-100,你这样成了10-100了

只有数组的时候才需要交换变量,list有set函数不需要。而且交换变量直接用位运算即可。

而且需要注意两点
第一 : 不写行尾注释
第二 : list或者数组或者String的length,size在for循环条件体1中声明长度变量,循环条件二比较长度变量,避免没执行循环需要调用对象的length或size等属性或方法

private static void bubble(ArrayList<Integer> list){
        for (int i = 0; i < list.size(); i++) {
            for (int j = 0; j < list.size()-1-i; j++) {
                if(list.get(j)>list.get(j+1)){
                    int temp = list.get(j);
                    list.get(j) = list.get(j+1); // 报错 应为变量
                    list.get(j+1) = temp;        // 报错 应为变量
                }
            }
        }
        PrintArr(list);
    }