因为项目的需要,今天抽时间把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. mentohust 你让我如何说你是好呢?

    最近换了ubuntu系统结果热了不少的麻烦,  借此机会唠叨一下, 首先是你这个ubuntu16.4 你这个bug 太让人郁闷了吧,或许主要是应该怪我菜,装个看家的软件eclipse.还热除了一堆的麻 ...

  2. .PRT extension and multiple NX versions

    http://nxway.blogspot.ca/2007/10/prt-extension-and-multiple-nx-versions.html To open prt files with ...

  3. ELb表达式

    主要用于servlet的4个作用域取值:pageScope.requestScope.sessionScope.applicationScope 取值顺序依次从小到大.取值方式如:操作javabean ...

  4. NFS挂载操作指南

    NFS 全称 network file system,其功能是实现将某台服务器的某个目录下资源共享给其他服务器.被共享的服务器作为nfs服务端,需要开启和配置nfs server服务.共享他人资源的服 ...

  5. OpenGL 坐标与矩阵转换

    1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation).做个比 ...

  6. WinAPI: GetKeyNameText - 根据键盘消息获取按键名称

    ;  Canvas.Font.Style := [fsBold];  Canvas.Font.Color := clRed;  Canvas.Brush.Color := clWhite;..] of ...

  7. Zabbix日志监视的汇总报警(更新发送邮件脚本)

    Zabbix的用户一定会碰到这种情况: 日志报警一般设置的是multiple模式,有错误大量写入的时候,每写入一行就会触发一次action,导致出现大量的报警邮件. 特别是ora的报警,经常一出就是上 ...

  8. 大数据存储:MongoDB实战指南——常见问题解答

    锁粒度与并发性能怎么样? 数据库的读写并发性能与锁的粒度息息相关,不管是读操作还是写操作开始运行时,都会请求相应的锁资源,如果请求不到,操作就会被阻塞.读操作请求的是读锁,能够与其它读操作共享,但是当 ...

  9. Powershell--批量拆分SQL语句为事务并批处理

    作为DBA,时不时会遇到将数据导入到数据库的情况,假设业务或研发提供一个包含上百万行INSERT语句的脚本文件,而且这些INSERT 语句没有使用GO来进行批处理拆分,那么直接使用SQLCMD来执行会 ...

  10. SQLSERVER取当前月第一天和最后一天

    --本月第一天: select   dateadd(dd,-day(getdate())+1,getdate()) --本月最后一天: SELECT dateadd(ms,-3,DATEADD(mm, ...