collection、iterator和map的解析

java数据类型包括基本数据类型,引用数据类型和集合数据类型,那么他们各自都有什么作用,即为什么要用这么多数据类型?

对于数据的使用,其实,1.申明 2.初始化(静态初始化和动态初始化(即创建实例的过程))3.就是如何利用定义的数据(存取等操作)

基本数据类型,是针对单个数据类型的定义,比如,Int a=2;说明a是一个整型的数据,这单单只是一个数据。

那么如果要同时定义多个具有相同类型的数据呢?这里引出了数组int[] a={1,2,3,4,4};,而数组唯一的标识就是下标,而且最重要得一点是,它只可能存储基本类型的多个数据,对于String 等这些对象,它是不能去定义的

那么如果要去定义多个相同的对象,这要怎么定义,这里就引出了集合类型:

集合类型有collection接口,Iterrator接口和Map接口三个集合数据类型:

一、collection接口有子接口List,set,和queue等,主要的是List,Set.

List接口她也有子接口ArrayList和Vector(特点是内容可以重复,这里要充分了解java的动态性,即声明的时候可以用collection<String> s;或者List<String> s;,但是,实例化的时候必须用实现了的子接口ArrayList和Vector中的一个,即s= new ArrayList<String>();

那么如何添加数据呢,这是利用函数add进行添加,输出可以直接用s.get()得到数据再输出,或者利用下面讲到的Iterator接口。

set接口有HashSet和TreeSet接口两种(特点是不能加入重复元素但可以排序),具体的申明和初始化和上面list相同这里就不讲了。

二、Iterator接口它是一个集合输出接口,即上面集合元素的输出可以用到这个接口,这个接口的定义和申明同上面的collection接口是一样的,但关键是他们是怎么联系起来的呢?如下面的代码,所表示的:

public class SetDemo01 {

	public static void main(String[] args) {

		Set<String> s=null;
		s=new HashSet<String>();
		s.add("b");
		s.add("d");
		s.add("f");
		s.add("e");
		s.add("a");
		System.out.println(s);
		Iterator<String> iter=s.iterator();
		while(iter.hasNext()){//这里hasnext函数是用来查询集合里是否还有元素
			String str = iter.next();//next函数是用来获取集合里的元素
			System.out.println(str);
		}
				
				
	}
Iterator<String> iter = s.iterator()利用这句代码便可以将它们与输出集合联系起来。这里就有一个问题collection集合明明可以自己输出,为什么要间接利用Iterator接口来输出呢?我的理解是一方面是因为Iterator接口提供了hasnext函数和next函数,对于数据的读取特别容易;另一方面是因为他可以适用于collection接口中的所有子接口,上述是我的理解。

三、map接口

map接口与上面两个的不同,是它是唯一的一利用键-值映射创建数据类型即它存储的是一对数据。

它包括hashmap和Hashtable两个子接口,那么它是怎么定义的呢?如下,

public class SetDemo01 {

	public static void main(String[] args) {

		/*
		 *申明map
		 */
		Map<String,String>	map= new HashMap<String,String>();
		/*
		 * 添加键-值
		 */
		map.put("key1", "my");
		map.put("key2", "name");
		map.put("key3", "marr");
		/*
		 * 如何获取键
		 */
		Set<String> s=map.keySet();
		Iterator<String> iter=s.iterator();
		while(iter.hasNext()){
			String str=iter.next();
			System.out.println(str);
		}
		/*
		 * 同样如何获取值
		 */
		Collection<String> a=map.values();
		Iterator<String> iter1=a.iterator();
		while(iter1.hasNext()){
			String str=iter1.next();
			System.out.println(str);
		}
		
				
	}


上述是我对java数据类型的系统理解,希望有助于大家的认识



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值