java基础之集合

      在java中,对数据的操作很多都要用到集合。最近零星的看了一点集合的相关知识,这里稍微梳理一下。基本上就是集合操作的四个常用类的一点总结。

    首先,集合大致分为两个方向,一种是普通的集合类型,通过接口collection向下扩展,另一种是map接口下的键值对的集合类型。今天主要说的的四个类ArrayList和LinkedList是collection接口下List接口的两个实现类。另外两个HashMap和TreeMap则是Map接口的实现类。

   首先,对于Collection,它的主要分支有两个:List和Set。List是有序的可以重复的集合接口,而Set是无序的不可重复的集合接口。

ArrayList:

  •     线程非同步
  •     介绍:可变的数组,允许所有元素包括NULL
  •     特点:可以根据索引位置对集合进行快速的访问和遍历,缺点是向指定位置插入和删除对象很慢
  •      应用:适合随机查找和遍历,不适合插入和删除。

LinkList:

  •     线程非同步
  •     介绍:采用链表结构保存对象
  •     特点:很便于向指定地点插入和删除对象,缺点是随机访问集合中的对象效率很慢
  •      应用:数据的动态插入和删除,不适合随机访问和遍历
  因为两个类都是实现List接口,方法都差不多:
       @Test
	public void test1()
	{
		List<String> list=new ArrayList<String>();
		list.add("AK-47");
		list.add("ACER");
		list.add("ASUS");
		list.set(2, "HP");//替换
		list.add(2, "Dell");//插入
		list.add("LENOVO");
		list.indexOf("HP");//查找
		Iterator<String> iterator =list.iterator();
		while(iterator.hasNext())
		{
			System.out.println(iterator.next());
		}
		
	}

HashMap:

  •   介绍:基于哈希表的Map接口实现,允许NULL
  •   特点:实现了Map集合对添加删除映射关系效率比较高,不能保证映射顺序
  •   应用:用于添加删除映射关系

TreeMap:

  •   介绍:实现Map和SortedMap接口,不允许NULL
  •   特点:有一定的映射顺序,但是添加删除映射关系效率比HashMap差
  •   应用:用于添加删除映射关系
 演示代码:
  
       @Test
	public void test2()
	{
		HashMap m=new HashMap();
		m.put("001", "Acer");
		m.put("002", "HP");
		m.remove("002");
		m.put("003", "LENOVO");
		Set set=m.entrySet(); 
		Iterator iterator=set.iterator();
		while(iterator.hasNext())
		{
			Map.Entry mapentity= (Map.Entry) iterator.next();
			System.out.println(mapentity.getKey()+":"+mapentity.getValue());
		}
		
	}
OK,集合就先写到这里。有什么错误请指正
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章