您的位置:首页 > 编程语言 > Java开发

list , set ,map 三者的用法以及区别

2018-01-17 15:49 381 查看
首先,讲一下list和set之间的相似性,list和set都是单列集合,他们有一个共同的父接口---collection。list是依次列出一个结合中的所有的元素,若集合中有重复的,同样列出,有序;set列出的集合中是不允许有重复的,也就是说里面有一个A对象和一个B对象,若是A.equals(B)==ture,那么用set方法列出的只会有一个,set集合默认是有序的,正向排序。一般遍历set里面的元素时使用iterator

map<key,value> 它是一个双列的集合。里面有一个key,和一个value,其中value是真正存储值得变量。map存储的数据是无序的,其键(key)不能重复,但是其值(value)是可以重复的。

下面我们看一个例子来看看他们之间的区别:

[java] view
plain copy

public class ListAndSetTest {

/**

* @param args

*/

String string[]={"i","am","xiao","huang"};

public void listtest(){

List<String> list=new ArrayList<String>();

for(String s:string){

list.add(s);

}

for(int i=0;i<list.size();i++)

{

System.out.println("list的结果是:"+list.get(i));

}

}

public void settest(){

Set<String> set=new HashSet<String>();

for(String s:string){

set.add(s);

}

Iterator iterator=set.iterator();

while(iterator.hasNext()){

System.out.println("set的输出结果是:"+iterator.next());

}

}

public static void main(String[] args) {

new ListAndSetTest().listtest();

new ListAndSetTest().settest();

}

}

首先定义一个字符串类型的数组,分别用list和set方法依次取出数组中的值,然后打印出来

结果如下:

[html] view
plain copy

list的结果是:i

list的结果是:am

list的结果是:xiao

list的结果是:huang

set的输出结果是:am

set的输出结果是:xiao

set的输出结果是:huang

set的输出结果是:i

下面是map的示例:

[java] view
plain copy

public void maptest(){

Map<Integer, String> map=new HashMap<Integer, String>();

for(String s:string){

map.put(s.length(), s);

System.out.println("map的输出结果是:"+map.get(s.length()));

}

}

这里写程序的时候要注意一个问题,就是来给string数组赋值的时候一定要保证每一个的长度都是不一样的,因为map中的key要求是不同。

结果如下:

[html] view
plain copy

map的输出结果是:i

map的输出结果是:am

map的输出结果是:xiao

map的输出结果是:huang
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java