我想从两天开始,但没有取得成功。我在我的片段的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