Collection接口

Collection接口

Collection表示一组对象,他是集中、收集的意思,就是把一些数据收集起来。

Collection函数库是在java.util包下的一些接口和类,类是用来产生对象存放数据用的,而接口是访问数据的方式。

Collection函数库与数组的亮点不同:

1. 数组的容量低有限的,而Collection库没有这样的限制,它的容量可以自动调节;

2. Collection函数库只能用来存放对象,而没有这样的限制。

Collection接口是Collection层次结构中的根接口,它定义了一些最基本的访问方法,让我们能用统一的方式通过它或它的子接口来访问数据。

区别:Collection代表一组对象,Collection函数库就是java中的集合框架,Collection接口是这个集合框架中的根接口。存放在Collection库中的数据被称为元素(element)。

Collection接口:定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。

-Set中的数据对象没有顺序且不可重复。

-List中的数据对象有顺序且可重复。

Map接口定义了存储“键(key)-值(value)映射对”的方法。

 

Map接口

实现Map接口的类用来存储键(key)-值(value)对

Map接口实现类有HashMap和TreeMap

Map类中存储的键-值对通过键来标识,所以键值不能重复

Object put(Object key,Object value);

Object get(Object key);

Object remove(Object key);

boolean containsKey(Object key);

boolean containsValue(Object value);

int size();

boolean isEmpty();

void putAll(Map t);

void clear();

Map底层实现:数组+链表

 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test01 {
	public static void main(String[] args){
		Map map = new HashMap();        
		map.put("id", 1201);
		map.put("name", "张三");
		map.put("salary", 3050);
		map.put("department", "项目部");
		map.put("heirDate", "2002-10");
		
		Map map2 = new HashMap();
		map2.put("id", 1202);
		map2.put("name", "李四");
		map2.put("salary", 3500);
		map2.put("department", "教学部");
		map2.put("heirDate", "2003-10");
		
		Map map3 = new HashMap();
		map2.put("id", 1203);
		map3.put("name", "王五");
		map3.put("salary", 3300);
		map3.put("department", "研发部");
		map3.put("heirDate", "2003-10");
		
		List<Map> list = new ArrayList<Map>();        //泛型,加了Employee后只能放Employee的对象
		
		list.add(map);
		list.add(map2);
		list.add(map3);
		
		printEmpName(list);
	}
	
	public static void printEmpName(List<Map> list){
		for(int i=0;i<list.size();i++){
			Map tempMap = list.get(i);
			System.out.println(tempMap.get("id")+"--"+tempMap.get("name")
			+"--"+tempMap.get("salary")+"--"+tempMap.get("department")
			+"--"+tempMap.get("heirDate"));
		}
	}
}


Set接口

Set接口是Collection接口的子接口,Set接口没有提供额外的方法,Set接口的特性是容器类中的元素没有顺序的,而且不可以重复。

Set容器可以与数学中“集合”的概念相对应。

J2SDK API中所提到的Set容器类有HashSet,TreeSet等。

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Test02 {
	public static void main(String[] args){
		Set set = new HashSet();
		set.add("高1");
		set.add("高2");
		set.add("高3"); 
		
		//通过迭代器遍历list
		Iterator iter = set.iterator();             //迭代器
		while(iter.hasNext()){                      //while循环
//		for(Iterator iter = set.iterator();iter.hasNext();){       //for循环
			String str = (String) iter.next();
			System.out.println(str);
		}
	}
}

 

Iterator接口

所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接对象。

Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作。

Iterator接口定义了如下方法:

boolean hasNext();  //判断是否有元素没有被遍历

Object next();     //返回游标当前位置的元素并将游标移动到下一个位置

void remove();      //删除游标左面的元素,在执行完next之后该操作只能执行一次

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test03 {
	public static void main(String[] args){
		List list = new ArrayList();
		list.add("aaa");
		list.add("bbb");
		list.add("ccc");
		
		//通过迭代器遍历list
		for(Iterator iter = list.iterator();iter.hasNext();){       //for循环
			String str = (String) iter.next();
			System.out.println(str);
			iter.remove();                          //删除
		}
		
		System.out.println(list.size()+"***************");
	}
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值