gpt4 book ai didi

java - 如何根据两个自定义对象删除列表中的重复项

转载 作者:行者123 更新时间:2023-11-29 08:43:59 24 4
gpt4 key购买 nike

我有一个 ProductDetail 类,它包含两个变量 productNameproductVersion。我需要根据最新的 productVersion 替换列表中的重复项。

例子:

class ProductDetails {
string productName;
string productVersion;
}
new ProductDetails("ios", "9.1.0")
new ProductDetails("android", "6.0.1")
new ProductDetails("android", "5.1.1")
new ProductDetails("ios", "10.0.0")

结果:安卓6.0.1iOS 10.0.0

提前致谢。

最佳答案

这应该适合你:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;


public class ProductDetails {

private String productName;
private String productVersion;
private List<ProductDetails> productData = null;

public ProductDetails(String productName,String productVersion){
this.productName = productName;
this.productVersion = productVersion;
if(productData == null) {
productData = new ArrayList<ProductDetails>();
adNewProduct(this);
}
}

private void adNewProduct(ProductDetails p){
String[] s1 = p.productVersion.split(Pattern.quote("."));
for (ProductDetails dpp: productData) {
if (dpp.productName.equals(p.productName)) {
int index = productData.indexOf(dpp);
String[] s2 = dpp.productVersion.split(Pattern.quote("."));
for(int i = 0; i < s1.length; i++) {
int v1 = Integer.valueOf(s1[i]);
int v2 = Integer.valueOf(s2[i]);

if (v1 > v2) {
productData.set(index,p);
return;
}
}
}
}
productData.add(p);
}


@Override // you can modify it to how you want
public String toString(){

String s = "";

for (ProductDetails p: productData){
s += "ProductName: " + p.productName + " ProductVersion: " + p.productVersion + "\n";
}
return s;
}


//the main method
public static void main(String[] args) {
ProductDetails k = new ProductDetails("ios", "9.1.1");
k.adNewProduct(new ProductDetails("android", "5.1.1"));
k.adNewProduct(new ProductDetails("android", "6.0.1"));
k.adNewProduct(new ProductDetails("ios", "10.0.0"));

System.out.println(k);

}

}

输出:

ProductName: ios ProductVersion: 10.0.0

ProductName: android ProductVersion: 6.0.1

关于java - 如何根据两个自定义对象删除列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37813338/

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