集合 判斷是否為同一元素 總結

2021-09-08 18:16:41 字數 3303 閱讀 6252

集合判斷是否是同一元素的策略總結

總結:

普通list集合

// 對於arraylist集合,判斷是否是同一物件,僅僅通過呼叫物件的【equals】方法

arraylistal = new arraylist();

al.add(new person("lisi", 20));

al.add(new person("bqt", 21));

al.add(new person("hello", 22));

system.out.println(al);//[lisi,20, bqt,21, hello,22]

person person = new person("lisi", 23);

system.out.println(al.contains(person));//true,contains判斷時呼叫的也是person的equals方法

al.add(person);//允許元素重複

system.out.println(al);//[lisi,20, bqt,21, hello,22, lisi,23]

system.out.println("***************************");

system.out.println(getsingleelement(al));//[lisi,20, bqt,21, hello,22]

collections.sort(al, new comparatorbyname());//按指定的比較器排序

system.out.println(al);//[bqt,21, hello,22, lisi,20, lisi,23]

collections.sort(al);//以物件自己的排序規則排序

system.out.println(al);//[lisi,20, bqt,21, hello,22, lisi,23]

tree系列集合

// 對於treeset,是根據【比較方法】的返回結果是否是0,是0,就是相同元素。注意:優先使用的是set指定的比較器。

treesetts = new treeset(new comparatorbylength());

ts.add("aaa");

ts.add("z");

ts.add("ca");

ts.add("ac");

ts.add("aaa");//重複的元素,不允許

system.out.println(ts);//[z, ac, ca, aaa],按字串長度由短到長排序,如果長度相同,則按字串自己的規則排序(自然排序)

treesetts2 = new treeset(new comparatorbyname());

//treesetts2 = new treeset();

ts2.add(new person("aaa", 21));

ts2.add(new person("nbaq", 21));

ts2.add(new person("ca", 21));

ts2.add(new person("ac", 21));

ts2.add(new person("aaa", 22));//按名字(字串)自己的規則排序,若名字相同按年齡由小到大排序

ts2.add(new person("aaa", 21));//重複的元素,不允許

system.out.println(ts2);//[aaa,21, aaa,22, ac,21, ca,21, nbaq,21]。若不指定比較器,結果為[aaa,21, aaa,22]

hash系列集合

// 對於hash系列的集合,是呼叫key的 equals【和】hashcode方法

mapmap = new hashmap();

map.put(new person("ca", 21), 1);

map.put(new person("ca", 23), 3);//equals相同,但hashcode不同,當做不同的物件

map.put(new person("aaa", 22), 2);

map.put(new person("z", 26), 4);

system.out.println(map.put(new person("ac", 400), 5));//null

system.out.println(map.put(new person("ac", 500), 6));//5。equals和hashcode都相同,當做同一key,把之前的【value】替換掉,注意【key】並沒有變!

for(person key : map.keyset()) 

去除list中重複元素

// 去除arraylist中的重複元素

publicstaticarraylistgetsingleelement(arraylistal) 

return temp;

}

比較器

//按字串長度排序

classcomparatorbylength implementscomparator

}//按person名字排序

classcomparatorbyname implementscomparator

}

具有比較功能的bean

classperson implementscomparable

public

int compareto(person p) 

public

int hashcode() 

public

boolean equals(object obj) 

public string tostring() 

}來自為知筆記(wiz)

同一元素內的元素再進行分行

迷茫了好幾天,一直在改進,一開始用盒子模型,但存在手機瀏覽器和螢幕的相容問題,放棄了,之後又用傳統的方法設定寬和高 前提父級設定height 100 或固定的值 內建的兩個元素,按不同比例平分父級的height 效果如下 實現 漂流的豬 10 22 name name pic span img ti...

唯一元素List UniqueList

using system using system.collections.generic using system.linq using system.text using system.reflection.emit using nunit.framework namespace sastest...

為同一元素物件分別用三種繫結事件方式繫結同一種事件

小菜鳥今天無意之間發現了這個問題,由於我之前用dom0級方式給li元素繫結了onclik事件,然後今天在做乙個小test的時候用元素特性再次給這個li元素繫結了onclik事件,然後意外的發現這個事件沒有觸發,又把這個事件換到其他元素上,alert成功。所以就想起了js中的三種繫結事件的方式,如果分...