private HashMap <Integer, String> ID_TAGS;
private HashMap <String, Integer> TAGS_ID;
private HashMap <String, String> TAGS_TRANSLATIONS;
private final ArrayList <Integer> INCLUSIONLIST;
private final ArrayList <Integer> EXCLUSIONLIST;
public DuplicationFinder(HashMap <Integer, String> id_tags, HashMap <String, String> tags_translations, ArrayList <Integer> exclusionList, ArrayList <Integer> inclusionList) {
this.ID_TAGS = id_tags;
this.TAGS_TRANSLATIONS = tags_translations;
this.INCLUSIONLIST = inclusionList;
this.EXCLUSIONLIST = exclusionList;
TAGS_ID = new HashMap <>();
for(Entry <Integer, String> e : ID_TAGS.entrySet()){
TAGS_ID.put(e.getValue(), e.getKey());
}
}
/**
* Findet die Duplikate und gibt die ID's zurück.
* @return
*/
public Set <Integer> findDuplicates(){
Set <Integer> duplicates = new LinkedHashSet <>();
for(Entry <Integer, String> e : ID_TAGS.entrySet()) {
HashMap <String, String> cloneWithoutTag= new HashMap <>(TAGS_TRANSLATIONS);
int id = e.getKey();
String tag = e.getValue();
cloneWithoutTag.remove(tag);
if(cloneWithoutTag.containsValue(TAGS_TRANSLATIONS.get(tag))) {
duplicates.add(id);
}
}
duplicates.addAll(EXCLUSIONLIST);
duplicates.removeAll(INCLUSIONLIST);
Iterator<Integer> nextD = duplicates.iterator();
while(nextD.hasNext()) {
System.out.println(lookUp(ID_TAGS.get(nextD.next())));
}
return duplicates;
}
public String lookUp(String tag) {
return TAGS_TRANSLATIONS.get(tag);
}
public int getID(String tag) {
return TAGS_ID.get(tag);
}
的價值,我不知道是否有人能幫助我與。我會嘗試在TAGS_TRANSLATIONS-HashMap中找到一些具有相同值的Keys。我的想法是,當所選的鍵不是整數的映射克隆,你可以看看是否仍然存在相同的值。它工作到目前爲止,但我有一個問題,像「會議」一些值只有一次在那裏,也得到了輸出。現在我會嘗試找到錯誤。預先感謝幫助:)
你的代碼實際上做了什麼?你已經將這件事拋棄在我們身上,然後讓我們修復它。 –
是的,這是我試圖解釋,我有HashMap與和這些標籤是指一個標籤,我在另一個HasMap <標籤,翻譯>實施。現在生病嘗試在翻譯中找到重複項,並且我想將該ID添加到重複項集中。但我有大約10重複,它不是沒有重複 –
我試圖在下面的答案,因爲你的上面的評論使問題足夠清楚,知道你想問什麼。爲了將來的參考,請提出更清晰的問題。 –