集合訓練4

2022-09-19 03:33:14 字數 497 閱讀 9390

試分析hashset和treeset分別如何實現去重的

hashset的去重機制: hashcode() + equals(),底層先通過存入物件,進行運算得到乙個hash值,通過hash值得到對應的索引,如果發現table索引所在的位置,沒有資料,就直接存放,如果有資料,就進行equals比較[遍歷比較],如果比較後,不相同,就加入,否則就不加入.

treeset的去重機制:如果你傳入了乙個comparator匿名物件,就使用實現的compare去重,如果方法返回0,就認為是相同的元素/資料,就不新增,如果你沒有傳入乙個comparator匿名物件,則以你新增的物件實現的compareable介面的compareto去重.

下面**執行會不會丟擲異常,並從原始碼層面說明原因.[考察讀原始碼+介面程式設計+動態繫結]

import j**a.util.treeset;

public class homework04

}class person

演算法訓練 集合運算

問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數。第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。集合中的...

演算法訓練 集合運算

問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數。第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。集合中的...

演算法訓練 集合運算

演算法訓練 集合運算 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數...