JAVA中幾種常見集合的使用實(shí)例
系統(tǒng)
2069 0
Java.util.ArrayList(類):
?
import
?java.awt.
*
;
import
?java.util.
*
;
public
?
class
?CollectionTest
{
//
List是一個(gè)能包含重復(fù)元素的已排序的Collection,有時(shí)list也稱為序列,List第一個(gè)元素的下標(biāo)為0?
?????
public
?String?colors[]
=
{
"
red
"
,
"
white
"
,
"
blue
"
}
;
//
定義一個(gè)字符數(shù)組
?????
//
構(gòu)造函數(shù)
?????
public
?CollectionTest()
?????
{
??????????ArrayList?list
=
new
?ArrayList();
//
實(shí)例化一個(gè)ArrayList
??????????list.add(Color.magenta);
//
向里面添加一個(gè)元素,這里是顏色
??????????
??????????
for
(
int
?count
=
0
;count
<
colors.length;count
++
)
??????????????list.add(colors[count]);
//
加入開始聲明的數(shù)組中的元素
??????????
??????????list.add(Color.cyan);?????
//
顏色 導(dǎo)入awt包
??????????System.out.println(
"
\nArrayList
"
);
??????????
for
(
int
?count
=
0
;count
<
list.size();count
++
)
?????????????System.out.println(list.get(count)
+
"
?
"
);
//
從arrayList中讀取 元素
??????????
??????????removeString(list);
??????????System.out.println(
"
\n\nArrayList?after?calling
"
+
"
removeString:
"
);
??????????
for
(
int
?count
=
0
;count
<
list.size();count
++
)
?????????????????System.out.println(list.get(count)
+
"
?
"
);
?????}
?????
?????
????????
public
?
void
?removeString(Collection?collection)
????????
{
?????????????Iterator?itrator
=
collection.iterator();????
//
聲明一個(gè)迭代
?????????????
//
調(diào)用itrator的hasNext方法判斷Collection是否還包含元素
?????????????
while
(itrator.hasNext())
?????????????
{
??????????????????
//
調(diào)用itrator的next方法獲得下一個(gè)元素的引用
??????????????????
if
(?itrator.next()?
instanceof
?String?)?
//
?instanceof 判斷是否是String 的實(shí)例
????????????????????????itrator.remove();????
//
如果是的 則刪除
?????????????}
????????}
?????
?????
public
??
static
?
void
?main(String[]?args)
?????
{
??????????
new
?CollectionTest();
?????}
?????
}
該例示范了ArrayList的使用 先聲明了一String類型的數(shù)組,里面存儲(chǔ)了“顏色”,是用字符串寫出的顏色,將這個(gè)字符串?dāng)?shù)組存入ArrayList實(shí)例,同時(shí)還存入了awt包內(nèi)的顏色實(shí)例,全部存入后利用迭代,刪除不符要求的假數(shù)據(jù),也就是我們用字符串寫的顏色,也用到了 instanceof 它是一個(gè)二元操作符,類似于equals用于判斷instanceof左邊 的對(duì)象 是否是 右邊對(duì)象的實(shí)例,若是 返回真,這里就可以判斷 ArrayList里面的真假顏色,假顏色是 字符串的 實(shí)例,所以我們通過迭代 一個(gè)個(gè)對(duì)比。只要是String的實(shí)例就將其從數(shù)組中刪除,所以最后 ArrayList里面僅僅剩下二個(gè)元素,運(yùn)行效果如下:
?
java.util.HashSet(類);
可以看到重復(fù)元素 orange除去了
java.util.Set(接口)
import
?java.util.HashSet;
import
?java.util.Iterator;
import
?java.util.Set;
class
?TestSet?
{????
?????
public
?
static
?
void
?main(String?args[])
?????
{
?????????Set?set?
=
?
new
?HashSet();
?????????set.add(
"
aaa
"
);
?????????set.add(
"
bbb
"
);
?????????set.add(
"
aaa
"
);
//
后面加入的重復(fù)性元素均無效
?????????set.add(
"
bbb
"
);
?????????set.add(
"
aaa
"
);
?????????set.add(
"
bbb
"
);
?????????set.add(
"
aaa
"
);
?????????set.add(
"
bbb
"
);
?????????set.add(
"
aaa
"
);
?????????set.add(
"
bbb
"
);
?????????Iterator?ite
=
set.iterator();
?????????System.out.println(set.size());
//
the?result?is?2
?????????
while
(ite.hasNext())
?????????
{
?????????????System.out.println(
"
----
"
+
ite.next());
??????????}
?????}
}
我們看到效果
java.util.List(接口)
package
?tt;
import
?java.util.Arrays;
import
?java.util.Collections;
import
?java.util.Iterator;
import
?java.util.LinkedList;
import
?java.util.List;
public
?
class
?ListTest?
{
????
public
?
static
?
void
?baseUse()
{
????????????
//
鏈表實(shí)現(xiàn)
????????????List?list?
=
?
new
?LinkedList();
????????????
//
數(shù)組實(shí)現(xiàn)
????????????
//
List?list?=?new?ArrayList();
????????????list.add(
"
a
"
);
//
向列表的尾部追加"a"
????????????System.out.println(
"
使用list接口的add()一個(gè)參數(shù)的方法:
"
+
list);
????????????list.add(
0
,
"
b
"
);
//
在指定位置插入"b"
????????????System.out.println(
"
使用list接口的add二個(gè)參數(shù)的方法:
"
+
list);
????????????list.remove(
"
a
"
);
//
移除列表中"a"
????????????System.out.println(
"
使用list接口的remove()方法刪除a:
"
+
list);
?????}
????
??????
public
?
static
?
void
?useSort()
{
????????????String[]?strArray?
=
?
new
?String[]?
{
"
z
"
,?
"
a
"
,?
"
c
"
,
"
C
"
}
;
????????????List?list?
=
?Arrays.asList(strArray);
????????????System.out.println(list);
????????????Collections.sort(list);
//
根據(jù)元素自然順序排序
????????????System.out.println(
"
自然順序:
"
+
list);
????????????Collections.sort(list,?String.CASE_INSENSITIVE_ORDER);
//
根據(jù)指定的字母方式排序????
????????????System.out.println(
"
指定字母方式:
"
+
list);
????????????Collections.sort(list,?Collections.reverseOrder());
//
根據(jù)反轉(zhuǎn)自然順序方式排序
????????????System.out.println(
"
反轉(zhuǎn)自然順序:
"
+
list);
????????????Collections.sort(list,?String.CASE_INSENSITIVE_ORDER);
????????????System.out.println(list);
????????????Collections.reverse(list);
//
反轉(zhuǎn)列表排序
????????????System.out.println(list);
??????}
???????????
????
public
?
static
?
void
?main(String[]?args)?
{
????
????????baseUse();
????
//
????useSort();
????}
}
運(yùn)行
?
java.util.TreeSet(類)
package
?tt;
import
?java.util.Iterator;
import
?java.util.TreeSet;
public
?
class
?TreeSetTest?
{
????
?????
public
?
static
?
void
?main(String?args[])
{
??????????TreeSet?a?
=
?
new
?TreeSet();
??????????a.add(
"
1167014513046,hondanna_mousepress
"
);
??????????a.add(
"
1167014512046,hondanna_mousepress_usefull
"
);
??????????a.add(
"
1167014511046,hondanna_mousepress_num
"
);
??????????a.add(
"
1167014515437,hondanna_mousepress
"
);
??????????a.add(
"
1167014514438,hondanna_mousepress_usefull
"
);
?????????Iterator?iterator?
=
?a.iterator();
?????????
while
(iterator.hasNext())
?????????????System.out.println(iterator.next());
?????????}
}
運(yùn)行結(jié)果:
TreeSet為使用樹來進(jìn)行存儲(chǔ)的Set接口提供了一個(gè)工具,對(duì)象按升序存儲(chǔ),訪問和存儲(chǔ)是很快的,在存儲(chǔ)了大量的需要進(jìn)行快速檢索的排序信息的情況下,TreeSet是一個(gè)很好的選擇
。
構(gòu)造函數(shù)定義為:
TreeSet()-構(gòu)造一個(gè)空的樹集合,該樹集合將根據(jù)其元素的自然順序按升序排序。
TreeSet(Collection c)-構(gòu)造了一個(gè)包含了c的元素的樹的集合。
TreeSet(Comparator comp)-構(gòu)造了一個(gè)空的樹的集合,它按照由comp指定的比較函數(shù)進(jìn)行排序。
TreeSet(SortedSet ss)-構(gòu)造了一個(gè)包含ss的元素的樹集合。
//
Set是包含獨(dú)一無二元素的Collection,HashSet把它的元素存儲(chǔ)在哈希表中,而TreeSet把它的元素存儲(chǔ)在樹中
import
?java.util.
*
;
public
?
class
?SetTest
{
?????
private
?String?colors[]
=
{
"
orange
"
,
"
tan
"
,
"
orange
"
,
"
white
"
,??
"
gray
"
}
;
?????
public
?SetTest()
?????
{
??????????????ArrayList?list;
??
JAVA中幾種常見集合的使用實(shí)例
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元