Java 第一次进入程序时打乱数据顺序并保存

以成语List为例

 private void changeOrderOnce(){
 		// 拿到数据
        List<Idiom> idiomList =  idiomModel.getIdiomList()
        // 第一次进入时打乱成语顺序
        if (PreferenceUtil.getString("order", "").equals("")) {
        	// 获取自然顺序的数字数组
            List<String> a = new ArrayList<>();
            for (int i = 0; i < idiomList.size(); i++) {
                a.add("" + i);
            }
            // 打乱
            Collections.shuffle(a);
            //打乱后以“-”分隔开每个数据并保存到数据库
            String b = "";
            for (int i = 0; i < a.size(); i++) {
                b = b + a.get(i) + "-";
            }
            PreferenceUtil.put("order", b);
        }
        // 拿到打乱后的数字数组
        String[] c = PreferenceUtil.getString("order", "").split("-");
        // 新建一个List,以打乱后的数字数组为顺序将原数据添加进去
        List<Idiom> newIdiomList = new ArrayList<>();
        for (int i = 0; i < idiomList.size(); i++) {
            newIdiomList.add(idiomList.get(Integer.parseInt(c[i])));
        }
        
        idiomModel.setIdiomList(newIdiomList);
    }
posted @ 2022-03-15 18:15  指切  阅读(72)  评论(0编辑  收藏  举报