gpt4 book ai didi

java - 防止Java中具有多个字段的重复数据集

转载 作者:行者123 更新时间:2023-12-02 03:07:59 25 4
gpt4 key购买 nike

我目前正在使用一个程序,每次运行该程序时都会实例化三个数字变量。例如:

(companyID, groupID, hostID)

The 1st time when I run it
(int companyID = 1; int groupID = 1, int hostID = 1)

2nd time
(1, 1, 1)

3rd time
(1, 1, 1)

4th
(1, 2, 1)

5th
(6, 4, 3)

...

有没有一种方法可以让我每次运行程序时都将这三个数字保存在数据集中,同时防止数据集中存储相同顺序的重复数字?在上例中,仅存储 1, 1, 1 的一个实例。

所以数据集中存储的最终结果只有(1,1,1),(1,2,1),(6,4,3)。

谢谢。

最佳答案

试试这个:

代码

import java.util.ArrayList;
import java.util.List;

public class DatasetUnique {

public static void main(String args[]){

// Data to insert
int[] one = {1,2,3};
int[] two = {2,3,4};
int[] three = {1,2,3};
int[] four = {7,8,9};
int[] five = {2,3,4};

// Data inserted
List<dataSet> allContent = new ArrayList<>();

// 1 - Insert data
insert(new dataSet(one), allContent);
insert(new dataSet(two), allContent);
insert(new dataSet(three), allContent);
insert(new dataSet(four), allContent);
insert(new dataSet(five), allContent);

// 2 - Print data
System.out.println(allContent.toString());

}

// Insert a dataset inside list if doesnt exists
private static void insert(dataSet dataSetToInsert, List<dataSet> allContent){
if(allContent.size() == 0){
allContent.add(dataSetToInsert);
}else{
for(dataSet ds: allContent){
if(dataSetToInsert.equals(ds)){
return;
}
}
allContent.add(dataSetToInsert);
}
}

// Class for each dataSet
private static class dataSet{

int firstNumber;
int secondNumber;
int thirdNumber;

public dataSet(int[] dataSet) {
super();
this.firstNumber = dataSet[0];
this.secondNumber = dataSet[1];
this.thirdNumber = dataSet[2];
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
dataSet other = (dataSet) obj;
if (firstNumber != other.firstNumber)
return false;
if (secondNumber != other.secondNumber)
return false;
if (thirdNumber != other.thirdNumber)
return false;
return true;
}

@Override
public String toString() {
return "\n" + firstNumber + " " + secondNumber + " "+ thirdNumber + "\n";
}
}


}

输出

[
1 2 3
,
2 3 4
,
7 8 9
]

关于java - 防止Java中具有多个字段的重复数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41473570/

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