javaoop-集合框架

javaoop-集合框架

一、数组在处理一些问题时存在明显的缺陷,而集合完全弥补了数组的缺陷,它比数组更灵活更实用,可大大提高软件的开发效率,并且不同的集合可适用于不同场合。
二、集合框架提供了一套性能优良,适用方便的接口和类,他们都位于java.util包中。
在这里插入图片描述从图中可以看出java集合框架中的两大类接口:Collection和Map。其中Collection又有两个子接口:List和Set。
1.Collection接口存储一组不唯一(允许重复),无序的对象。
2.Set接口继承Collection接口,存储一组唯一(不允许重复),无序的对象。
3.List接口继承Collection接口,存储一组不唯一(允许重复),有序(以元素插入的次序来放置数据,不会重新排列)的对象。
4.Map接口存储一组成对的键-值对象,提供key(键)到value(值)的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。
三、实现List接口的常用类有ArrayList和LinkedList。
1.ArrayList实现了长度可变的数组、存储数据的方式和数组相同,都是在内存中分配连续的空间,它的优点在于遍历数据和随机访问数据的效率比较高。在这里插入图片描述

	List list=new ArrayList();
        //添加数据
		list.add("aaaa");
		list.add("dddd");
		list.add("cccc");
		list.add("aaaa");
		//遍历数据
		for (int i = 0; i <list.size(); i++) {
			System.out.println(list.get(i).toString());
		}
		

2.LinkedList采用链表存储方式,优点在于插入,删除数据时效率比较高。在这里插入图片描述

//链表集合
LinkedList lianlist=new LinkedList();
       //添加数据
        lianlist.addFirst("aaaa");
		lianlist.add("dddd");
		lianlist.add("cccc");
		lianlist.addLast("aaaa");
		//删除数据
		lianlist.removeFirst();
		lianlist.removeLast();

3.最常用的Map实现类是HashMap,它的存储方式是哈希表。哈希表也称为散列表,是根据键获取对应的值,使用这种方式存储数据的优点是查询指定元素效率高。

//创建Map集合
		Map map=new HashMap();
		//添加
		map.put("1","aaaa");
		map.put("2","bbbb");
		map.put("3","cccc");
		map.put("4","dddd");
		//获取:根据Key-->value
		System.out.println(map.get("1"));
		//删除
		map.remove("1");
		//map的遍历
		for (Object key : map.keySet()) {
			System.out.println(key+"\t\t"+map.get(key));
		}

4.所有集合接口和类都没有提供相应的遍历方法,而是把遍历交给迭代器Iterator完成。Iterator为集合而生,专门实现集合的遍历。通过Iterator接口的两个方法即可实现遍历。
①boolean hasNext():判断集合中是否还存在可访问的元素
②Object next():返回要访问的下一个元素

//迭代器遍历集合
		Iterator it=list.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}

5.使用泛型集合在创建集合对象时指定集合中元素的类型,在从集合中取出元素时无需进行强制类型转换,避免了数据转换异常。

List<Double>list1=new ArrayList<Double>();
		list1.add(13.6);

注意:<>里只能放包装类。java中有8个包装类:Byte、Short、Integer、Long、Float、Double、Boolean、Character。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值