Java中Set的使⽤(转载)
在Java中使⽤Set,可以⽅便地将需要的类型以集合类型保存在⼀个变量中.主要应⽤在显⽰列表.Set是⼀个不包含重复元素的 collection。更确切地讲,set 不包含满⾜ e1.equals(e2) 的元素对 e1 和 e2,并且最多包含⼀个 null 元素。正如其名称所暗⽰的,此接⼝模仿了数学上的set 抽象。
以下是在JAVA中使⽤Set的范例,希望对⼤家有帮助.
import java.util.*;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Set  set=new HashSet();
set.add("abc");
set.add("cde");
set.add("efg");
set.add("fgh");
set.add("abc"); //重复的abc,set会⾃动将其去掉
System.out.println("size="+ set.size() );
List list = new ArrayList();
list.add("abc");
list.add("aaa");
list.add("fff");
set.addAll(list); //将list中的值加⼊set,并去掉重复的abc
System.out.println("size="+ set.size() );
for( Iterator  it = set.iterator();  it.hasNext(); )
{
System.out.println("value="+it.next().toString());
}
}
}
***************************************************************
对JAVA的集合的理解是想对于数组
数组是⼤⼩固定的,并且同⼀个数组只能存放类型⼀样的数据(基本类型/引⽤类型)
JAVA集合可以和操作数⽬不固定的⼀组数据。
所有的JAVA集合都位于 java.util包中!
JAVA集合只能存放引⽤类型的的数据,不能存放基本数据类型.
JAVA集合主要分为三种类型:
Set(集)
List(列表)
Map(映射)
Collection 接⼝
Collection是最基本的集合接⼝,声明了适⽤于JAVA集合(只包括Set和List)的通⽤⽅法。
Set 和List 都继承了Conllection,Map没有
Collection接⼝的⽅法:
boolean add(Object o)  :向集合中加⼊⼀个对象的引⽤
void clear()                        :删除集合中所有的对象,即不再持有这些对象的引⽤
boolean isEmpty()          :判断集合是否为空
boolean contains(Object o): 判断集合中是否持有特定对象的引⽤
Iterartor iterator()              : 返回⼀个Iterator对象,可以⽤来遍历集合中的元素
boolean remove(Object o):从集合中删除⼀个对象的引⽤
int size()                              :返回集合中元素的数⽬
Object[] toArray()                :返回⼀个数组,该数组中包括集合中的所有元素
关于:Iterator() 和toArray() ⽅法都⽤于集合的所有的元素,前者返回⼀个Iterator对象,后者返回⼀个包含集合中所有元素的数组。
Iterator接⼝声明了如下⽅法:
hasNext(): 判断集合中元素是否遍历完毕,如果没有,就返回true
next()      :返回下⼀个元素
remove():从集合中删除上⼀个有next()⽅法返回的元素。
Set(集合):
Set是最简单的⼀种集合。集合中的对象不按特定的⽅式排序,并且没有重复对象。
Set接⼝主要实现了两个实现类:
HashSet : HashSet类按照哈希算法来存取集合中的对象,存取速度⽐较快
TreeSet  : TreeSet类实现了SortedSet接⼝,能够对集合中的对象进⾏排序。
Set 的⽤法:
存放的是对象的引⽤,没有重复对象
Set set=new HashSet();
String s1=new String("hello");
String s2=s1;
String s3=new String("world");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());//打印集合中对象的数⽬为 2。
Set 的 add()⽅法是如何判断对象是否已经存放在集合中?
boolean isExists=false;
Iterator iterator=set.iterator();
while(it.hasNext())          {
String ();
if(newStr.equals(oldStr)){
isExists=true;
}
}
List(列表):
List的特征是其元素以线性⽅式,集合中可以存放重复对象。
List接⼝主要实现类包括:
ArrayList() : 代表长度可以改变得数组。可以对元素进⾏随机的访问,向ArrayList()中插⼊与
与删除元素的速度慢。
LinkedList(): 在实现中采⽤链表数据结构。插⼊和删除速度快,访问速度慢。
对于List的随机访问来说,就是只随机来检索位于特定位置的元素。
List 的 get(int index) ⽅法放回集合中由参数index指定的索引位置的对象,下标从“0” 开始。
最基本的两种检索集合中的所有对象的⽅法:
1: ⽤for循环和get()⽅法:
for(int i=0; i<list.size();i++){
System.out.(i));
}
2: 使⽤迭代器(Iterator):
Iterator it=list.iterator();
while(it.hashNext){
System.out.);
}
Map(映射):
Map 是⼀种把键对象和值对象映射的集合,它的每⼀个元素都包含⼀对键对象和值对象。
Map没有继承于Collection接⼝
从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。
Map 的常⽤⽅法:
1 添加,删除操作:
Object put(Object key, Object value): 向集合中加⼊元素
Object remove(Object key):  删除与KEY相关的元素
void putAll(Map t):  将来⾃特定映像的所有元素添加给该映像
java arraylist用法void clear(): 从映像中删除所有映射
2 查询操作:
Object get(Object key): 获得与关键字key相关的值
Map集合中的键对象不允许重复,也就说,任意两个键对象通过equals()⽅法⽐较的结果都是false.
但是可以将任意多个键独享映射到同⼀个值对象上。
Conllections : 集合实⽤类
Conllections提供了供JAVA集合实⽤的静态⽅法
总结:
JAVA集合的基本⽤法,都归纳了,上⾯这些是平常最常⽤的JAVA集合,具体的其他的,还要参考JDK帮助⽂档了,呵呵关于 Map的应⽤,还有很多,具体就是这个,Conllections提供了很多 List /Map 实⽤的⽅法,对平常开发⾮常有⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。