gpt4 book ai didi

java - 如何不将重复项添加到数组列表中

转载 作者:行者123 更新时间:2023-12-01 20:16:53 26 4
gpt4 key购买 nike

已编辑是我没解释清楚,所以我再好好问一下。

我有 json 对象的数组列表。我的 json 包含 13000 个对象,每个对象包含一些值。在某些情况下,对象中的值之一是相同的。例如:

我现在拥有的:

public void readData() {
String json_string = null;

try {
InputStream inputStream = getActivity().getAssets().open("garages.json");
int size = inputStream.available();
byte[] buffer = new byte[size];
inputStream.read(buffer);
inputStream.close();

json_string = new String(buffer, StandardCharsets.UTF_8);
Gson gson = new Gson();
garage = gson.fromJson(json_string, Garage.class);

//In this loop I'm checking address and if it equal to current user address , I'm add this object to Array list.

for (int i = 0; i < 13476; i++) {
if (garage.getGarage().get(i).garageCity.equals(AddressSingleton.getInstance().getCurrentAddress())) {
garageObjects.add(garage.getGarage().get(i));
Log.d("TheDataIS", "readData: " + garage.getGarage().get(i).garageName);
}
}

} catch (IOException e) {
e.printStackTrace();
}
}

如果查看 JSON 文件,您可以看到第一个和第二个车库中的名称相同,但另一个值 garage_code 不同。在这种情况下,我不想将两个对象添加到数组中。

{
"garage" : [
{
"garage_code":16,
"garage_name": "New York Garage",
"phone_number": "123123",
"city":"New York"
},{
"garage_code":21,
"garage_name": "New York Garage",
"phone_number": "123123",
"city":"New York"
},{
"garage_code":51,
"garage_name": "My Garage",
"phone_number": "089898",
"city":"Some city"
},...

对于这个 json 文件,我希望仅将第一个和第三个对象添加到数组中。

最佳答案

同意以上所有回答。您需要使用 Set 而不是 List。

与 Set 一起,您可能需要覆盖 Garage 中对象中的给定参数等于和哈希码

例如:-如果您的要求是车库名称不应重复,则使用车库名称参数覆盖 equals 和 hashcode

关于java - 如何不将重复项添加到数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58951975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com