Java集合框架

来源:互联网 发布:淘宝账户怎么注册不了 编辑:程序博客网 时间:2024/06/02 19:01
集合框架:可以理解为用来在内存中存放一组对象的容器
java中的集合框架是线性的数据结构,但是这些线性的数据结构分为两类:物理线性,逻辑线性

数据多了用对象存储,对象多了用集合存储,

数组与集合的区别,数组用于存储统一类型的数据,有固定的长度
集合可以存储不同类型的数据,没有固定的大小

由此图可知:map与list和set是没有什么关系的,list和set是collection的子接口,而map不是!

接口下面的是他们对应的已知的实现类 

List:

数组用于存储统一类型的数据,有固定的长度List是有序列的一种集合,集合里面的对象在放入的时候就形成了特定的逻辑顺序
集合中的每一个对象都有一个惟一的顺序位置,通过它们的下标表示出来
因此遍历的时候可以按照它们的下标顺序逐一访问。也可以用迭代方式遍历
在List集合中,我们常用的实现类有:ArrayList、LinkedList、Vector

集合可以存储不同类型的数据,没有固定的大小

//测试List集合的方法public void testList(){//创建一个List容器ArrayList list = new ArrayList();list.add(10);list.add(1000);list.add("abc");list.add(10);System.out.println("list容器的大小:"+list.size());//遍历listSystem.out.println("遍历list中所有的元素:");printList(list);//System.out.println(list);//换行System.out.println();}
//遍历list的方法public void printList(ArrayList list){for(int i=0;i<list.size();i++){System.out.print(list.get(i)+" ");}}



Set

Set是最简单的一种集合,它里面的对象是无序排列的,对象没有特定的排列方式

Set里面的对象也是互异的,即Set集合中没有相同的元素

Set集合中的对象是无序的,所以不能像数组那样根据下标遍历,可以通过迭代方式遍历

在Set集合中,我们常用的实现类有:HashSet、TreeSet

迭代器(Iterator):Iterator是获取集合中元素的过程,实际上帮助获取集合中的元素

//测试set集合的方法public void testSet(){//创建一个Set容器HashSet set = new HashSet();set.add(10);set.add(1000);set.add("abc");set.add(10);System.out.println("set容器的大小:"+set.size());//遍历setSystem.out.println("遍历set中所有的元素:");printSet(set);//把set对象作为参数传递给这个方法//换行System.out.println();}
//遍历set的方法public void printSet(HashSet set){////获取set集合的迭代器对象Iterator it = set.iterator();while(it.hasNext()){//取出元素System.out.print(it.next()+" ");}}



Map:

Map与Set,List有点不同,它可以存放两种对象,并且这两种对象是一一对应的

一种对象称为key,一种称为value,其中key不能重复,但value能重复

由于存放的对象数量与上面两种不同,所以在选择使用Map时是很方便的

遍历Map时可以先用迭代器得到key,再通过key与value的对应得到value

在Map集合中,我们常用的实现类有:HashMap、HashTable、TreeMap

//测试Map集合的方法public void testMap(){//创建一个Map容器HashMap map = new HashMap();map.put(1, "张三");map.put(2, "李四");map.put(3, "王五");map.put(2, "aaa");//覆盖之前的元素//map.put("aaaa", 1.0f);System.out.println("map容器的大小:"+map.size());//System.out.println(map);//System.out.println(map.get(3));//遍历setSystem.out.println("遍历map中所有的元素:");printMap(map);}
//遍历map的方法public void printMap(HashMap map){//获取map中所有的key:保存在一个Set集合中Set set = map.keySet();//遍历setIterator it = set.iterator();while(it.hasNext()){Object key = it.next();//获取到每一个keyObject value = map.get(key);//获取到每一个key对应的value值System.out.println("学号:"+key+"   姓名:"+value);}}


0 0