因为项目的需要,今天抽时间把JAVA中的容器复习了一下,为了以后的不时之需,现在把它记下来。

  容器有其名,知其意,用来盛放数据的集合,JAVA中为我们提供了三种容器类:set、list、map,三种容器之间既有联系又有区别,首先它们均继承了Collection容器,区别在于:set容器存储数据类似于集合,里面的数据之间没有顺序,不能重复;list容器中的数据有序,并且数据可以重复;最后map容器是一种通过键值对进行的存储,所以map容器要求键值不能重复。

  通过这个图相信大家一定能够对JAVA容器有一个很好地认识。

接下来让我们一起看几个例子:

第一个:HashSet、LinkedList、ArrayList、Interator的介绍

public class hashset {

    public static void main(String[] args) {
Collection c = new HashSet();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
Iterator it = c.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}

输出结果:(HashSet存储里面的数据是无序的)

public class linkedlist {
public static void main(String[] args) {
Collection c = new LinkedList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
Iterator it = c.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}

输出结果:

public class hashset {

    public static void main(String[] args) {
Collection c = new HashSet();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
Iterator it = c.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}

输出结果:

public class object_interator {
public static void main(String [] args){
Collection c = new ArrayList(); //特别注意,add添加的均要为Object对象
c.add(new student("张生", "男"));
c.add(new student("王二", "男"));
c.add(new student("莉莉", "女"));
c.add(new student("小明", "男")); Iterator it = c.iterator();
while(it.hasNext()){
student stu = (student)it.next();//特别注意it.next()获得的是一个Object对象,一定要转化为指定的对象,然后进行操作
System.out.println(stu);//默认调用其toString()方法
}
}
} //定义的一个student对象
class student{
public String name;
public String sex; //无参构造方法
public student(){}
//有参构造方法
public student(String name, String sex){
this.name = name;
this.sex = sex;
} public String getname(){
return name;
} public String getsex(){
return sex;
} //从写其toString()方法
public String toString(){
return "姓名:"+name+" 性别:"+sex;
}
}

下面简单介绍一下SDK1.5提出的增强for循环:

public class addFor {

    public static void main(String[] args) {
int arr [] = {1,2,3,4,5};
for(int i=0; i<arr.length;i++){
System.out.println("传统的输出:"+arr[i]);
}
System.out.println("");
for(int i : arr){
System.out.println("增强的for循环输出:"+i);
}
System.out.println("");
Collection c = new ArrayList();
c.add(new String("aaa"));
c.add(new String("bbb"));
c.add(new String("ccc"));
c.add(new String("ddd"));
for(Object o : c){
System.out.println(o);//默认调用其toString()方法
}
}
}

对于List容器JAVA给出了一种处理内部数据的方法:Collections,下面简单给大家分享一下我的理解:

public class list_fix {
public static void main(String [] args){
List li = new ArrayList();
for(int i = 0; i<=5; i++){
li.add("a"+i);
}
System.out.println("处理前:"+li);
Collections.reverse(li);//逆序排列
System.out.println(li);
Collections.shuffle(li);//随机排列
System.out.println(li);
Collections.sort(li);//排序
System.out.println(li);
int n = Collections.binarySearch(li, "a5");//基于二分法的查找
System.out.println("a5的位置:"+n); }
}

输出结果:

到这里我想大家估计已经对容器有了一定的了解,如果你有更好的认识还望大家赐教。

JAVA_Collection容器的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网页提交中文到WEB容器的经历了些什么过程....

    先准备一个网页 <html><meta http-equiv="Content-Type" content="text/html; charset=gb ...

  3. [Spring]IoC容器之进击的注解

    先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...

  4. 深入理解DIP、IoC、DI以及IoC容器

    摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学 ...

  5. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  6. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题

    1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...

  7. docker4dotnet #2 容器化主机

    .NET 猿自从认识了小鲸鱼,感觉功力大增.上篇<docker4dotnet #1 前世今生&世界你好>中给大家介绍了如何在Windows上面配置Docker for Window ...

  8. 深入分析Spring 与 Spring MVC容器

    1 Spring MVC WEB配置 Spring Framework本身没有Web功能,Spring MVC使用WebApplicationContext类扩展ApplicationContext, ...

  9. Set容器--HashSet集合

    Set容器特点: ①   Set容器是一个不包含重复元素的Collection,并且最多包含一个null元素,它和List容器相反,Set容器不能保证其元素的顺序; ②   最常用的两个Set接口的实 ...

随机推荐

  1. Request三种获取数据的方式

    今天在做ajax请求后台代码时,发现ajax的方法都对,但就是请求不了后台代码,后来在同事帮助下才发现前台定义了两个相同参数导致请求出错. 下面记录一下request三种获取数据的方式: 1. Req ...

  2. 我的iOS之路2

    第一篇果然没人看呢...好吧...那就当笔记做吧...第一篇主要写的是生成了一个helloworld,可能也是和别人撞了,所以有点厌烦,连名字都改掉吧 好,开始写第二篇 之前做第一个应用程序的时候没有 ...

  3. mysql用户权限设置

    1.创建新用户 通过root用户登录之后创建 >> grant all privileges on *.* to testuser@localhost identified by &quo ...

  4. 【转】windows消息和消息队列详解

    转载出处:http://blog.csdn.net/bichenggui/article/details/4677494  windows消息和消息队列 与基于MS - DOS的应用程序不同,Wind ...

  5. Java的UUID

    UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OS ...

  6. iPhone的Push(推送通知)功能原理浅析

    第一部分:Push原理(以下绝大多数内容参考自.图片来自iPhone OS Reference Library)机制简介Push 的工作机制可以简单的概括为下图图中,Provider是指某个iPhon ...

  7. 【leetcode】Trapping Rain Water

    Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

  8. Arcgis –>ArcToolBox 有些工具不能用,没有许可

    问题描述 错误信息: You do not have the necessary license to execute the selected tool   我3D Analyst是有许可的.   ...

  9. 【腾讯Bugly干货分享】安卓单元测试:What, Why and How

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d28349101cd07a5404c415 Dev Club 是一个交流移动 ...

  10. Java多线程16:线程组

    线程组 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象,有效地对线 ...