list、set、map区别
list是有序且重复的;
list中的数据都是按照写入的顺序排列的,存入list的数据用add方法写入;
list可以用循环遍历list以达到获取全部数据的目的,同时也可以通过下标get(index)获得某一个位置的数据。
list如需获取数据的长度,需通过.size()方法来获取,而不是.length方法。
set是无序且不重复的;
set写入的数据如果相同的话,后面写入的数据则会覆盖前面写入的数据,set中也是通过add 方法来写入元素的。
set是无序的,所以无法通过下标来访问某一个元素,如果要获取set中的数据就需要通过迭代器Iterator类来获取,通过Iterator类中的方法来得到set中的元素。
map和list、set都有所不同,map中的数据都是成对出现的,一组数据叫做key,一组叫做value,其中key是唯一的,一个key可以对应多个值,而一个value只能对应一个key,因为这种关系,所以可以通过访问key而获取value的数据。
map可以是通过map中的keySet方法将key转化为set,然后再用迭代器获取key的数值,在使用map中的get 方法获得value的值。也可以用key得到value值。
eg:
Map<String, Object> map=new HashMap<String, Object>();
map.put("3333", "333");
map.put("1111", "111");
map.put("2222", "222");
map.put("4444", "444");
Set set=map.keySet();
for (Iterator iterator = set.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
System.out.println(map.get(object));
}
list比较适用于存储需要精确有序读取某一个位置的数据.
set是当不需要重复的数据或者筛选出不重复的数据时来存储数据。
map则可以使用来存储需要成对出现的数据,如账户和密码;