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