最近我又在研究Java语言,这是第五次还是第六次学习Java的集合类,你也许会惊讶为什么这么多次?哈哈,因为之前的我没有记录下来,忘记了,当然最主要还是觉得自己毅力不够,没有坚持。那么,这次我将换一种方式进行Java的框架类学习:一是只学习常用的部分,二是一边学习一边写成博客,并用代码进行验证。

  集合类又叫容器类,容器是什么?容器就是装东西的,它在Java中就是装对象的,这时候我就纳闷儿了:数组不就可以存储各种各样的对象吗,又增加一个什么集合类,岂不是多此一举?于是我就开始查阅资料,终于得到一个结果,使用数组的确可以存储对象,但是如果对象数目无法确定的情况下,数组是不实用的,因为数组的长度是不变的,然而呢,集合类可以存储任意类型的对象,并且长度可以变。因此,我认为集合类可以完全取代数组,除非一些特别简单的情况,可以考虑使用数组,其余时候都应该首先考虑使用集合类。

  集合类按照存储结构(数据结构中又叫做物理结构)分为:单列集合、双列集合。

  哦,对了,所有的集合类都位于java.util包中,使用之前请务必import一下。

  接下来看看常用的集合框架图:(引用自网络)

  

  Collection:是单列集合的根接口。常用的两个子接口分别是List、Set。

         List的特点就是:元素有序,元素可以重复。主要实现类ArrayList、LinkedList、Vector(如今很少用)。

         Set的特点就是:元素无序,而且不能重复。主要实现类HashSet、TreeSet。

  Map:是双列集合的根接口,双列集合主要用来存储键值对。主要实现类HashTable、HashMap、TreeMap。

  我先学习的是单列集合,从根接口Collection开始。根接口定义了很多单列集合通用的方法,主要作用:在集合中添加元素、删除元素、获取集合中元素个数等。用实例对常用方法进行说明:(使用ArrayList举例)

  

package testCollection;
import java.util.*;
//测试单列集合根接口Collection
public class CollectionTest00 {
public static void main(String[] args)
{
Collection coll = new ArrayList();
Person person = new Person("仗剑走天涯", 23);
person.toString();
//向集合中添加一个元素 add()
coll.add("ZSY is a beauty!");
coll.add(123);
coll.add(person);
//获取该集合元素的个数 size()
System.out.println("集合元素个数:"+coll.size()+"个");
//判断该集合元素是否为空
if(!coll.isEmpty())
System.out.println("集合不是空!");
else
System.out.println("集合是空!");
//判断是否包含某个元素contains(Object o)
System.out.println(coll.contains(123));
//删除集合中指定元素remove(Object o)
System.out.println(coll.toString());
coll.remove(123);
System.out.println(coll.contains(123));
System.out.println(coll.toString());
//删除该集合中的所有元素
coll.clear();
System.out.println(coll.size());
//再次初始化
coll.add("ZSY is a beauty!");
coll.add(123);
coll.add(person);
System.out.println(coll.size());
//将指定集合中的所有元素添加到该集合中 addAll(Collection c)
Collection coll1 = new ArrayList();
coll1.addAll(coll);
System.out.println("复制后的:\n"+coll1);
//删除指定集合的所有元素
coll.remove(123);
System.out.println("删除前的:\n"+coll);
coll1.removeAll(coll);
System.out.println("删除后的:\n"+coll1);
//返回在该集合的元素上进行迭代的迭代器,用于遍历该集合所有元素itrator
Iterator it = coll.iterator();
while(it.hasNext())
{
Object obj = it.next();
System.out.println(obj);
}
//增强型for循环,进行遍历
for(Object obj : coll)
{
System.out.println(obj);
}
} } class Person{
private String name;
private int age; Person(String name,int age)
{
this.name=name;
this.age=age;
} public String getName()
{
return this.name;
} public int getAge()
{
return this.age;
} public void setName(String name)
{
this.name=name;
} public void setAge(int age)
{
this.age=age;
}
@Override
public String toString()
{
String str = new String("我的名字叫:"+name+";我的年龄:"+age+"岁。");
System.out.println(str);
return str;
}
}

  这里,必须隆重给自己介绍一下Itrator接口,它的中文名:迭代器------>实质功能就是用来进行循环遍历所有元素的,它也是集合框架中的一员。对于它的使用方式,常用的格式就是如代码所示:先得到Itrator对象,然后判断集合是否还有下一个元素,用next()方法取出下一个元素,记住规矩:先取后用。

  代码中,还用到了增强型for循环,它的格式如下:

  for(集合类存储类型 变量名:集合的变量名)

  {

  执行语句...

  }//当然增强型for循环也适用于数组,例如:

        int[] a=new int[10];
for(int i=0;i<10;i++)
{
a[i]=i+4;
}
for(int b:a)
{
System.out.println(b);
}

  集合框架入门上篇,就到这里了,主要分析了单列集合的常用操作。

附:以上程序运行结果:

  

Java集合类--->入门上篇的更多相关文章

  1. Java集合类--->入门下篇

    HashSet集合 在上篇大概了解了什么是集合类,知道它可以存储任意类型的对象,并且比数组灵活,集合类的长度可以变化.这里将接着介绍一下,Set接口的实现类之一,HashSet集合,Set集合:元素不 ...

  2. 《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路

    以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx ... 一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门.我以前在学校的时候自觉过很多门 ...

  3. java集合类(六)About Queue

    接上篇“java集合类(五)About Map” 终于来到了java集合类的尾声,太兴奋了,不是因为可以休息一阵了,而是因为又到了开启新知识的时刻,大家一起加油打气!!Come on...Fighti ...

  4. java集合类(五)About Map

    接上篇“java集合类(四)About Set” 这次学完Map之后,就剩队列的知识,之后有关java集合类的学习就将告一段落,之后可能会有java连接数据库,I/O,多线程,网络编程或Android ...

  5. java集合类(四)About Set

    接上篇:java集合类(三)About Iterator & Vector(Stack) 之前,在比较java常见集合类的时候,就了解到一点有关Set的特性.实现类及其要求等,读者可以去温习下 ...

  6. java集合类(三)About Iterator & Vector(Stack)

    接上篇:java集合类学习(二) Talk about “Iterator”: 任何容器类,在插入元素后,还需要取回元素,因为这是容器的最基本工作.对于一般的容器,插入有add()相关方法(List, ...

  7. java集合类(二)List学习

    接上篇  java集合类(一) List接口继承了Collection接口和Iterable接口,即同样含有Collection和 Iterable的特性,还有方法,其基本方法有: 1)有关添加: b ...

  8. C功底挑战Java菜鸟入门概念干货(二)

    (接上篇博文:C功底挑战Java菜鸟入门概念干货(一)) 一.Java面向对象程序设计-类的基本形式 1.“类”是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达对真实世界的一种抽象概 ...

  9. 《java从入门到精通》学习记录

    目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...

随机推荐

  1. Linux安装php-7.0.16,完成php和apache的配置

    Linux安装php-7.0.16,完成php和apache的配置     版本:php-7.0.16.tar.gz,libxml2-2.9.2.tar.gz(php需要它的支持,首先安装它) 说明 ...

  2. EJB是什么?(节选)

    近期的项目中使用了EJB.当时就仅仅知道怎么用,没有深入的去理解.当完毕这个项目之后.再回想项目中使用的技术.框架以及工具的时候,突然感觉对EJB这个概念非常是模糊,于是上网搜一些资料.可是,非常多的 ...

  3. 【WPF学习笔记】之WPF基础:依赖关系属性和通知

    这些天来,对象似乎已经忙得晕头转向了.每个人都希望它们做这做那.Windows® Presentation Foundation (WPF) 应用程序中的典型对象会接到各种各样不同的请求:有要求绑定到 ...

  4. publish over ssh 实现 Jenkins 远程部署

    Jenkins远程部署,一开始没有任何头绪,想了很多方案. 因为两台机器都是windows系统,所以想到publish over cifs, 但是这个网上资料太少,貌似只能内网使用.又想到了Jenki ...

  5. GitHub 寻宝指南

    GitHub 寻宝指南 寻找 Demo 技术栈的关键字搜索,并按更新时间进行排序 生命有限 ,如若是每次我们尝试一个新的技术,总得自己编写一个个 Demo.编写多个 Demo,都得花去个半天八小时的时 ...

  6. JSP 表单处理向服务器提交信息

    JSP 表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法向服务器提交数据. GET 方法 GET方法将请求的编码信息添加在网址后面, ...

  7. 【原创】Hibernate自动生成(1)

    本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正. 开发环境: Eclipse Version: Photon ...

  8. java servlet中上传文件的简单实现(基于第三方jar)

    这里的案例使用了两种文件上传的组件.分别介绍 1.使用JSPSmartUpload完成上传 package test_servlet_package; import java.io.File; imp ...

  9. jmeter--基于http+json接口的功能测试

    jmeter--基于http+json接口的功能测试 测试项目叫做smile_task,简称sm_task.这是一个基于nodejs超简单的todo list,sm_task没有任何UI界面(纯接口) ...

  10. linux c编程:进程控制(三)_exec函数

    fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间.堆.栈等资源的副本.注意,子进程持有的是上述存储空间的“副本”,这意味着父子进 ...