对象容器、对象数组、集合容器(输出改进)

package notebook;

import java.util.ArrayList;
import java.util.HashSet;

class Value {
    private int i;

    public void set(int i) {
            this.i = i;
        }
    public int get() {
            return i;
        }
}
public class NoteBook {
    public static void main(String[] args) {
        ArrayList<String> b = new ArrayList<String>();   //创建一个Array容器类的对象b  ( 容器的类型为ArrayList,元素的类型为String )
        b.add("first");                                  //添加一个对象b的元素"first"
        b.add("second");                                 //添加一个对象b的元素"second"
        b.add("first");
        System.out.println(b);                       //按顺序输出添加的元素

        System.out.println("--------------------");
        HashSet<String> c = new HashSet<String>();       //创建一个集合容器的对象c      (容器的类型为Hash,元素的类型为String)
        c.add("1");                                      //添加一个对象c的元素"1"
        c.add("2");                                      //添加一个对象c的元素"2"
        c.add("1");                                      //添加一个对象c的元素"1"
        System.out.println(c);                       //会无顺序输出所添加的元素(且元素不会重复)

        System.out.println("--------------------");

        Value[] a = new Value[10];                   //创建对象数组a
        for( int i=0; i<a.length; i++){
            a[i] = new Value();                      //创建每一个对象,因为数组的每一个元素只是对象的管理者而非对象本身,
            a[i].set(i);                             //初始化创建的每一个对象
        }
        for( Value v : a ){                          //用for-each循环来输出对象数组
            //变量v和a共同管理数组
            System.out.println(v.get());
            v.set(666);                                //将数组里的每个对象的值重置为0
        }

        for( Value v : a ){                          //用for-each循环输出重置后的对象数组a
            System.out.println(v.get());
        }
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 16:24:38

对象容器、对象数组、集合容器(输出改进)的相关文章

set集合容器应用基础

set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据.每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理.作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值.不会将重复的键值插入容器,也不需要指定具体的插入位置,而按元素在树中的关联关系,进行位置检索和插入,元素的删除亦然. 元素数据的检索,使用的是二叉检索树的中序遍历算法,检索的效率高于vector. deque 和

从头认识java-14.1 再次对照数组与容器

这一章节我们再次深入的对照数组与容器. 数组与容器主要集中在三个方面:效率.类型.基础类型. 我们能够从三方面做出对照. 1.效率 这里的下来是指add和get 的速度 以下以add为例: package com.ray.ch13; import java.util.ArrayList; public class Test { public static void main(String[] args) { Integer zero = new Integer(0); ArrayList<Int

stl之set集合容器应用基础

set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据.每一个节点包括一个取值红色或黑色的颜色域.以利于进行树的平衡处理.作为节点键值的元素的插入,必须确保每一个子树根节点的键值大于左子树全部节点的键值,而小于右子树全部节点的键值.不会将反复的键值插入容器.也不须要指定详细的插入位置,而按元素在树中的关联关系,进行位置检索和插入.元素的删除亦然. 元素数据的检索.使用的是二叉检索树的中序遍历算法.检索的效率高于vector. deque

数组集合添加算法

集合是无限存储的容器: 数组集合采用的算法是一开始先开辟好有限的空间进行存储放进来的数据. 等需要再次存放数据的时候,再去开辟一块比原来的空间多的容量之前,老的数据导入进新开辟的空间,然后再把新进来的数据放进空间里,依次这样进行开辟导入就形成了无限的容器.这就是数组集合的算法.  在java源码里面,采用的导入方式是直接调用本地系统语言来直接导入数据,这样提高了效率,一万毫秒才能完成的事情也许四千毫秒就执行完毕. 取消for循环导入使用System.arraycopy如下代码: /** * 更多

Java中数组和集合容器的剖析

java中常用的存储容器就是数组的集合,每种容器存储的形式和结构又有所不同. 数组,是最基础的容器,在创建数组的时候有三种方式分别如下: int[] arr = new int[5]; int[] arr = new String[]{1,2,3,4,5}; int[] arr = {1,2,3,4,5}; 从上面的三种方式可以看出,在定义数组的时候有个共同的特点就是能够直接看出数组的长度,这也是数组的一大特点,就是定义的时候指定长度,同时数组一旦定义完成后长度就不可以变化,这也是数组在后期开发

C++ 容器对象vector和list 的使用

在<<c++ primer>>第四版Exercise Section 9.3.4 的Exercise 9.20 是这样的一道题目:编写程序判断一个vector<int> 容器包含的元素是否与list<int> 容器完全相同.测试代码如下: 1 #include "stdafx.h" 2 #include <iostream> 3 #include <string> 4 #include <list> 5

windows phone应用设置容器对象ApplicationDataContainer

应用设置是windows phone中封装好的数据存储方式,是保存在应用程序存储区的键值对集合,它自动序列化对象,并将其保存在应用程序里面. 当应用程序删除时,保存的数据也会随之消失,此种方式主要存储一些应用程序设置信息. 基本特点: 1.应用程序设置拥有容器的层次结构,因此容器里面还可以在嵌套容器,容器最多可以嵌套32层. 2.应用程序设置所存储的是单个的数据类型对象. 使用方法: 1.获取本地应用程序设置容器: ApplicationDataContainer _appSetting = A

一起写框架-Ioc内核容器的实现-对象的调用-属性注入容器的对象(十)

实现功能 需求:在类的成员属性使用@Autowirde注解注入容器中的对象. 实现思路 要实现这个功能.我们首先要思考一个问题:类与类的关系是在调用的建立的,还是说在创建对象的时候就就将建立了? ---我实现的方案是,在在程序启动后,所有对象创建后直接就将对象的属性和属性之间的关系创建了.接下来我就用这个思路来实现,将根据@Autowirde建立对象与对象之间的关系. 为什么一定要对象全部创建后再实现对象与对象直接的关系呢? 这个是逻辑问题,如果对象没有创建完就建立对象与对象之间的关系,人家都还

配置Spring的用于初始化容器对象的监听器

<!-- 配置Spring的用于初始化容器对象的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> &l