[英]How to remove an element from an array based on a condition? Java
我有 2 個信息來源,我可以從中獲得不同的產品來展示。 但是,有重復(相同的標識符),我想消除它們。 我有一個標志,它告訴我我得到的是哪個來源,我想消除那些重復標識符和標志在 1 中的那些。這是我完成提取信息來源時得到的對象數組:
[
{
"identifier":"10410",
"sku":"69343",
"product":"Name 2",
"flag":2,
"date":null,
"price":304.74
},
{
"identifier":"10555",
"sku":"69343",
"product":"Period 2",
"flag":2,
"date":null,
"price":304.74
},
{
"identifier":"10410",
"sku":"69388",
"product":"Other name 2",
"flag":1,
"date":null,
"price":304.74
},
{
"identifier":"10444",
"sku":"69341",
"product":"Other name 3",
"flag":1,
"date":null,
"price":304.74
}
]
我試着做這個:
[
{
"identifier":"10410",
"sku":"69343",
"product":"Name 2",
"flag":2,
"date":null,
"price":304.74
},
{
"identifier":"10555",
"sku":"69343",
"product":"Period 2",
"flag":2,
"date":null,
"price":304.74
},
{
"identifier":"10444",
"sku":"69341",
"product":"Other name 3",
"flag":1,
"date":null,
"price":304.74
}
]
有誰能夠幫助我? 或者給我關於如何在 Java 中做到這一點的建議?
這是一個簡單的例子。
該模型將是帶有 setter 和 getter 的構造函數。
public class ModelExample {
String title;
public ModelExample(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
讓我們創建該模型的列表,並為其添加標題。 您將對 json 數組執行 for 循環並添加值。不過它與此類似。
List<ModelExample> model = new ArrayList<ModelExample>();
model.add(new ModelExample("instructor"));
model.add(new ModelExample("Dev"));
model.add(new ModelExample("Dev 2"));
model.add(new ModelExample("Dev 3"));
model.add(new ModelExample("Dev 4"));
model.add(new ModelExample("Dev 5"));
model.add(new ModelExample("Dev 6"));
如果我想打印所有內容....
for (int k = 0; k < model.size(); k++) {
System.out.println("Title: " + model.get(k).getTitle());
}
這將打印以下內容:
Title: instructor
Title: Dev
Title: Dev 2
Title: Dev 3
Title: Dev 4
Title: Dev 5
Title: Dev 6
然后我想遍歷列表,我有一個條件,如果索引標題等於教師,我將其刪除。
for (int i = 0; i < model.size(); i++) {
if (model.get(i).getTitle().equals("instructor")){
model.remove(i);
}
}
然后我想創建一個新的 JSONArray 並將我的列表中的剩余項目作為 json 對象添加。
JSONArray array = new JSONArray();
try {
for (int i = 0; i < model.size(); i++) {
JSONObject object = new JSONObject();
object.put("title", model.get(i).getTitle());
array.put(object);
}
System.out.println("JSONArray: " + array.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
最終的打印值將是這個。
[{
"title": "Dev"
}, {
"title": "Dev 2"
}, {
"title": "Dev 3"
}, {
"title": "Dev 4"
}, {
"title": "Dev 5"
}, {
"title": "Dev 6"
}]
這是我編碼的整個班級。 請記住,您應該始終練習 OOP。 創建刪除索引的方法,而不是在整個類中使用它。 這是一種非常快速和混亂的方法。
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class ModelExample {
String title;
public ModelExample(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
List<ModelExample> model = new ArrayList<ModelExample>();
model.add(new ModelExample("instructor"));
model.add(new ModelExample("Dev"));
model.add(new ModelExample("Dev 2"));
model.add(new ModelExample("Dev 3"));
model.add(new ModelExample("Dev 4"));
model.add(new ModelExample("Dev 5"));
model.add(new ModelExample("Dev 6"));
for (int k = 0; k < model.size(); k++) {
System.out.println("Title: " + model.get(k).getTitle());
}
System.out.println("\n\nSize of list before removing: " + model.size());
for (int i = 0; i < model.size(); i++) {
if (model.get(i).getTitle().equals("instructor")){
model.remove(i);
System.out.println("REMOVED INSTRUCTOR");
}
}
System.out.println("Size of list after removing: " + model.size() + "\n\n");
JSONArray array = new JSONArray();
try {
for (int i = 0; i < model.size(); i++) {
JSONObject object = new JSONObject();
object.put("title", model.get(i).getTitle());
array.put(object);
}
for (int j = 0; j < array.length(); j++) {
System.out.println("Title: " + array.get(j));
}
System.out.println(array.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最后,這打印了以下內容:
Title: instructor
Title: Dev
Title: Dev 2
Title: Dev 3
Title: Dev 4
Title: Dev 5
Title: Dev 6
Size of list before removing: 7
REMOVED INSTRUCTOR
Size of list after removing: 6
Title: {"title":"Dev"}
Title: {"title":"Dev 2"}
Title: {"title":"Dev 3"}
Title: {"title":"Dev 4"}
Title: {"title":"Dev 5"}
Title: {"title":"Dev 6"}
[{"title":"Dev"},{"title":"Dev 2"},{"title":"Dev 3"},{"title":"Dev 4"},{"title":"Dev 5"},{"title":"Dev 6"}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.