1. 程式人生 > 其它 >Java 第一次進入程式時打亂資料順序並儲存

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);
    }