JAVA_Collection容器

  因为项目的需要,今天抽时间把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);

    }
}

输出结果:

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

时间: 2024-10-06 07:04:49

JAVA_Collection容器的相关文章

Docker学习笔记——Mongo Dockerfile及容器运行

1.创建项目目录mongo,在目录下上传下载的Mongodb安装文件及mongo.conf配置文件,创建Dockerfile文件,项目结构如下: mongo - Dockerfile - mongo.conf - mongodb-linux-x86_64-3.4.9.tgz - data - logs Dockerfile内容如下: # mongo # SOURCE_IMAGE FROM centos # MAINTAINER_INFO MAINTAINER bluemooder [email 

spring父子容器

通过HierarchicalBeanFactory接口,Spring的IoC容器可以建立父子层级关联的容器体系,子容器可以访问父容器中的Bean,但父容器不能访问子容器的Bean.在容器内,Bean的id必须是唯一的,但子容器可以拥有一个和父容器id相同的Bean.父子容器层级体系增强了Spring容器架构的扩展性和灵活性,因为第三方可以通过编程的方式,为一个已经存在的容器添加一个或多个特殊用途的子容器,以提供一些额外的功能. Spring使用父子容器实现了很多功能,比如在Spring MVC中

java持有对象【2】ArrayList容器续解

此为JDK API1.6.0对ArrayList的解释. ArrayList 使用java泛型创建类很复杂,但是应用预定义的泛型很简单.例如,要想定义用来保存Apple对象的ArrayList,可以声明ArrayList<Apple>,尖括号内为类型参数,(可以为多个).它指定了容器可以保存的类型. 通过使用泛型,可以在编译期防止将错误类型的对象放置到容器中. ArrayList向上转型为List. 应该注意到,在将元素从List中取出时,类型转换不是必须的了.因为List在调用get()时会

width:100%与绝对定位同时存在,偏移出父级容器

当父级容器内的子元素width设为100%,而子元素又有绝对定位时,子元素伸展超出父级容器,像下面 出现这种情况的原因,width:100%,这个百分之百是相对其定位父级而言的,其定位父级有多宽,这个子元素就有多宽,所以子元素跑到了父级容器外 html <div class="container"> <div class="content">好的</div> </div> css .container { positi

【Docker常见问题2】如何设置容器日志大小和保留个数

举例:当tomcat容器的运行,容器占用空间越来越大,约1个月就会超过2G,如何解决? 步骤1:查看容器日志大小:假设容器目录为/var/lib/docker/containers,那么执行如下命令 cd /var/lib/docker/containers  #进入默认容器空间目录 du -sh *            #统计文件大小2.4G  de92a5643f7ffb106f8abba21fc0f93996842917a52879153adc95a73312934a-json.log

Vector容器 和 iteration 迭代器

vector容器 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包含其他对象.一个容器中的所有对象都必须是同一种类型的. 使用vector之前,必须包含相应的头文件.#include <vector> using std::vector; vector是一个类模板(class template).模板允许程序员编写单个类或函数定义,这个类和函数定义可用于不同的数据类型上.

架构师养成--7.同步类容器和并发类容器

一.同步类容器 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作.复合类操作如:迭代(反复访问元素,遍历完容器中的所有元素).跳转(根据指定的顺序找到当前元素的下一个元素).以及条件运算.这些复合操作在多线程并发的修改容器时,可能会表现出意外的行为,最经典的便是ConcurrentModificationException,原因是当容器迭代的过程中,被并发的修改了内容,这是由于早期迭代器设计的时候并没有考虑并发修改的问题. 同步类容器:如古老的Vector/HashTable.

vector容器用法详解

vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化. vector类常用的函数如下所示: 1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const t& t):创建一个vector,元

【Effective Java】8、优先考虑类型安全的异构容器

有的时候我们一个容器只有一个类型或几个类型并不能满足我们的要求,比如set中存放的元素类型都是同一种,map也就指定的两种 这里我们可以将键进行参数化,而不是将容器参数化,也就是我们可以给容器传一个键的类型,然后value用来放对应的实例,这样就可以存放多个不同的类型了 如: package cn.xf.cp.ch02.item29; import java.util.HashMap; import java.util.Map; public class ManyTypeClass { //一个