我想從兩天開始,但沒有取得成功。我在我的片段的onStop方法中將arraylist保存在內部存儲中,然後從onresume方法的內部存儲中獲取此數據。我正在檢查要存儲在interanlly存儲的數組列表中的字符串,以防止在內部存儲中存儲重複的字符串,但這似乎不起作用。它每次都在內部存儲器中存儲重複字符串。我不明白我在這裏做錯了什麼。我會非常感謝你的幫助。如何防止在內部存儲器中存儲重複的字符串
public void saveTitleList(){
try {
FileOutputStream fileOutputStream= mContext.openFileOutput("radiotitle2.txt",MODE_PRIVATE);
DataOutputStream dataOutputStream=new DataOutputStream(fileOutputStream);
dataOutputStream.writeInt(stationName2.size());
ArrayList<String> titletest=getTitleList();
for(String line:stationName2){
if(!titletest.contains(line)){//here i am checking for duplicate strings in intenal file
dataOutputStream.writeUTF(line);
Log.d("title2 saved",line);
}
}
dataOutputStream.flush();
dataOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public ArrayList<String> getTitleList(){
ArrayList<String> titleList= new ArrayList<>();
try {
FileInputStream fileInputStream= mContext.openFileInput("radiotitle2.txt");
DataInputStream dataInputStream= new DataInputStream(fileInputStream);
int size=dataInputStream.readInt();
for(int i =0;i<size;i++){
String line=dataInputStream.readUTF();
titleList.add(line);
Log.d("title2 from storage",line);
}
dataInputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return titleList;
}
使用一個將防止重複的集合 – 7663233
感謝您的回答:) – LanguageMaster