Hashset
Set 如果是實現了Set接口的集合類,具備的特點: 無序,不可重複。 * 無序: 添加元素 的順序與元素出來的順序是不一致 的。 *hashSet的實現原理:往Haset添加元素的時候,HashSet會先調用元素的hashCode方法得到元素的哈希值 ,然後通過元素 的哈希值經過移位等運算,就可以算出該元素在哈希表中 的存儲位置。情況1: 如果算出元素存儲的位置目前沒有任何元素存儲,那麼該元素可以直接存儲到該位置上。情況2: 如果算出該元素的存儲位置目前已經存在有其他的元素了,那麼會調用該元素的equals方法與該位置的元素再比較一次,如果equals返回的是true,那麼該元素與這個位置上的元素就視為重複元素,不允許添加,如果equals方法返回的是false,那麼該元素運行 添加。 | */publicclass Set01 {publicstaticvoid main(String[] args) {Set set = newHashSet();set.add("張三");set.add("王二");set.add("李二");System.out.println(set.add("李二"));//返回的是faaseIterator it = set.iterator();while(it.hasNext()){System.out.println(it.next());}Set<Dog> set1 = new HashSet<Dog>();set1.add(new Dog("狗娃",23));set1.add(new Dog("狗勝",25));set1.add(new Dog("狗孫",29));System.out.println(set1.add(new Dog("狗娃",23)));}}class Dog{String name;intage;public Dog(String name, int age) {super();this.name = name;this.age = age;}@Overridepublic String toString() {return"[年齡:"+this.age+","+"姓名:"+this.name;}/* (non-Javadoc) * @see java.lang.Object#hashCode() */@Overridepublicint hashCode() {returnthis.age;}@Overridepublicboolean equals(Object obj) {Dog dog = (Dog)obj;returnthis.age==dog.age;}} |
相關推薦
'中秋佳節:沒編程合集大團圓!318本編出電子書籍➕視頻資料項目'
"中秋節佳節,小夥伴們都放假開心的回家團圓去了吧?這不、小編給你們帶來了更開心的事情、那就是給你們準備好了編程合集大團圓!全網最全編程語言視頻教程(從零基礎到大牛哦!)包含java、python、web、大數據、人工智能、等視頻教程+項目+源碼,現在免費分享給各位![領取方...
'Java中的String為什麼是不可變的?'
"什麼是不可變對象?眾所周知, 在Java中, String類是不可變的。那麼到底什麼是不可變的對象呢? 可以這樣認為:如果一個對象,在它創建完成之後,不能再改變它的狀態,那麼這個對象就是不可變的。不能改變狀態的意思是,不能改變對象內的成員變量,包括基本數據類型的值不能改變...
Java
2019-09-12
'Java中15種鎖的介紹!鎖不鎖不知道,反正Java挺好用的'
"導讀(需要Java相關學習資料,轉發私信小編“學習”)在讀很多併發文章中,會提及各種各樣鎖如公平鎖,樂觀鎖等等,這篇文章介紹各種鎖的分類。介紹的內容如下:1.公平鎖 / 非公平鎖2.可重入鎖 / 不可重入鎖3.獨享鎖 / 共享鎖4.互斥鎖 / 讀寫鎖5.樂觀鎖 / 悲觀鎖...
'月末福利:300集Java+400集Python視頻教程限額分享,速來搶名額'
"Java在正式開始Java學習之前,先來了解幾個關鍵性問題。那就是什麼是Java,為什麼要學習Java,Java 有哪些特點,Java 有哪些機制,如何來學習 Java 等幾個問題。通過這幾個問題讓大家瞭解 Java 的一些內容,從而展開 Java 的學習。Java是一種...
'誰說JAVA不適合做神經網絡,那來看看Encog這款框架吧'
"一提到深度學習,神經網絡等技術,大部分肯定會想到TensorFlow,Keras,Caffe,PyTorch等框架,而這些框架大部分都是使用Python來進行開發的,毫無疑問,在人工智能領域技術上比如神經網絡等Python是一種很不錯的選擇,但是作為一個java程序員,如...
'715集“最強”的視頻教程!限時分享(300集java+415集Python)'
"JavaJava是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的...
'springboot配合maven打成可執行jar,構建鏡像部署到docker容器中'
"本篇文章將介紹springboot應用如何打成jar包,並將jar構建為docker鏡像部署到docker中應用打包需要配合spring-boot-maven-plugin打包,將以下代碼放到應用pom文件中 <plugin> <groupId>o...
推薦中...