Java 第一次進入程式時打亂資料順序並儲存
阿新 • • 發佈:2022-03-15
以成語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); }