`
商山居士
  • 浏览: 8601 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

探索——【java集合类】

 
阅读更多

java.util包提供了一些集合类 ,这些集合类又被称为容器,提到容器不难想到数组,集合类与数组不同之处 在于数组长度固定 ,而集合类长度可变的,数组用来存放数据,集合类用来存放对象引用,常用的集合类有list,set,map,list和set继承了Collection接口,各个接口还提供了不同的实现类,看一下关系图

要掌握集合类这个图非常重要,这一个图概括了一个类,三个接口,六个知识点,所以将集合类总结为一三六,Collection接口是接口层次中的根接口。构成collection的单位被称之为元素,Collection接口往往不能直接使用但是该接口提供了添加元素删除元素管理数据的方法,List和set接口都继承了Collection接口,所以方法对于List和set接口是通用的,至于有人要问为什么要把Collection写成接口,不做解释这是sun公司规定,如有深究者可以找sun公司理论,collection接口定义了存取一组对象的方法其子类接口为set和list分别定义了存储方式,

1:set里面的元素没有顺序且不可重复。

2:list里面的元素有顺序且可以重复。

3:map接口定义了键(key)-值(value)映射对的方法。
 在set,list,map下面又定义了很多不同的类,像ArrayList,HashSet等等,先不管它们怎么用,只要看见list就应该明白这是一个装有序的可以重复的元素,看见set就知道这是无序的不可重复的,这里有人就问了,那还要那么多类干嘛,这就好比你上学装书一样,用书包装可以,塑料袋装着也行,只要你愿意,用桶装上书也行,所以不同的装书的方式有不同的用途,有它自身的优缺点但是共同点是他对外的接口是统一的,前面提到过泛型,现在看一个泛型与集合类的部分用法

import  java.util.*;
public class ArrayLisTest  {
	public static void main(String args[]){
		
		//实例化list对象
		ArrayList<String> list = new ArrayList<String>();
		 list.add("张三");
		 list.add("李四");
		 list.add("王麻子");
		 //list有下标可以用for循环遍历数组
		 for(int i = 0 ;i<list.size();i++){
			 System.out.println(list);
			 
			 
		 }
		 //创建迭代器,用迭代方法遍历元素
		 Iterator<String> iter =list.iterator();
                 //用while判断是否有下一个元素如果有就输出下一个元素
		 while(iter.hasNext()){

			 String str = iter.next();
			 System.out.println(str);
			 
		 }
		 //用增强的for循环foreach遍历
                 //括号内冒号左边表示返回值类型,右边表示要遍历的对象
		 for(String s:list){
			 System.out.print(s);
		 }
		
	}

	
		
	}

	

 通过以上例子可以了解泛型与集合的用法还了解了集合中的遍历数组方法Iterator,为了加深印象,用三种例子说明遍历方法,重点说明后两种遍历方法,乍一听,迭代好像很高大上,其实也没什么,为了便于理解读者可将其理解为遍历容器中的元素,foreach其实可以理解为简化的Iterator,for循环接触比较多就不过多解释了,希望大家可以熟练掌握这三种遍历方法,至于map和set读者可以根据情况自己尝试,就不做说明了

 

  • 大小: 82.5 KB
分享到:
评论

相关推荐

    java面试笔试题库java学习笔记开发教程互联网公司面试资料大全合集.zip

    大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    ├─面试必问-架构杀手锏——java混乱的日志体系 │ java混亂日志体系源码揭秘.mp4 │ ├─面试必问-深入微服务之SpringBoot&Docker1 │ 深入微服务之SpringBoot&Docker.mp4 │ └─面试必问-聊聊哈希算法与HashMap

    Kotlin 实战 (kotlin in action) 电子书

    第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己...

    Kotlin in action

    第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己...

    kotlin 实战

    第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己...

    asp.net知识库

    完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算...

    Cocos2D-X游戏开发技术精解

    3.2.7 精灵集合类(CCSpriteBatchNode) 72 3.2.8 精灵帧缓冲(CCSpriteFrameCache) 74 3.2.9 Zwoptex纹理编辑器 76 3.3 文字与字体 80 3.3.1 TTF类型标签(CCLabelTTF) 81 3.3.2 BMFont标签类(CCLabelBMFont) ...

    Struts2 in action中文版

    3.3.2 ActionSupport类 45 3.4 向对象传递数据 51 3.4.1 对象支持的JavaBean属性 52 3.4.2 ModelDriven动作 54 3.4.3 域对象用作数据转移的潜在危险 55 3.5 案例研究:文件上传 56 3.5.1 通过struts-default包获得内...

    在一小时内学会 C#(txt版本)

    使用例程,简单却完整的探索 C# 语言的构造和特点。本文特别适合有 C++ 基础却没有太多精力学习 C# 的读者。 关于作者 Aisha Ikram 我现在在英国一家软件公司任技术带头人。我是计算机科学的硕士。我主要使用 ...

Global site tag (gtag.js) - Google Analytics