java持有对象【1】容器类及ArrayList

    如果一个程序只包含固定数量的且其生命周期都是已知的对象,那么这是一个非常简单的程序。  ----------java编程思想第十一章引言

    java有许多方式引用对象,例如学过的数组,他是编译器支持的类型,用来保存一组对象的最有效方式。但是数组具有固定的尺寸,在此受限的情况下,就需学习java的容器类

    深入的学习就要去不停地阅读jdk。java使用类库提供了一套完整的容器类。其中基本类型是List,Set,Queue,Map。也称为集合类。java的类库中用了collection来指代该类库的一个特殊子集,即为层次结构中的根接口。

    Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 SetList)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。

    包 (bag)多集合 (multiset)(可能包含重复元素的无序 collection)应该直接实现此接口。

    ArrayList,你可以看待他为“可以自动扩充自身尺寸的数组”。使用ArrayList的方法:创建一个实例,用add()插入对象,然后用get()访问这些对象,此时需要用到索引,像数组一样,但是不需要方括号  " [  ] "  。ArrayList还有一个方法size(),表示有多少个元素添加了进来,从而不会不小心因索引越界而引发错误(通过抛出运行时异常)。

    public class AAO{

      @SupperessWarnings("unchecked")

        public staticvoid main(String[] args){

          //ArrayList保存的是Object,所以可以通过其的add()方法添加Apple对象和Orange对象

          //若想定义来保存Apple对象的ArrayList,需声明ArrayList<Apple>,尖括号内饰类型参数(可为多个)

          ArrayList apples=new ArrayList();

          for(int i=0;i<3;i++){       apples.add(new Apple());  }

          apples.add(new Orange());

          //get()方法取出的Apple对象,只是Object引用,需转型为Apple

          for(int i=0;i<apples.size();i++){  ( (Apple)apples.get(i) ).id();  }

        }

      }

      //Apple和Orange类除了都是Object之外没有共性。(如果一个类没有显示声明继承自哪个类,那么他自动继承自Object)

      class Apple{

        private static long counter;

        private finallong id=counter++;

        public long id()  {  return  id  ;  }

        }

      class  Orange{}

时间: 2024-08-08 05:36:19

java持有对象【1】容器类及ArrayList的相关文章

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

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

JAVA 持有对象——容器初探

引言 如果一个程序只包含固定数量的且其生命周期都是已知对象,那么这是一个非常简单的程序--<think in java> 了解容器前,先提出一个问题,ArrayList和LinkedList谁的处理速度更快呢? 一 持有对象的方式 在Java中,我们可以使用数组来保存一组对象.但是,数组是固定大小的,在一般情况下,我们写程序时并不知道将需要多少个对象,因此数组固定大小对于编程有些受限. java类库中提供了一套相当完整的容器类来解决这个问题,其中基本类型有List,Queue,Set,Map,

java 持有对象总结

java提供了大量的持有对象的方式: 1)数组将数字和对象联系起来,它保存类型明确的对象,查询对象时,不需要对结果做类型转换,它可以时多维的,可以保存基本数据类型的数据,但是,数组一旦生成,其容量就不能改变 2)Collection保存单一的元素,而Map保存相关联的键值对.有了java泛型,你就可以指定容器中存放的对象类型,因此你就不会将错误类型的对象放置到容器中,并且从容器中取出元素时,不必进行类型转换,各种Collection和各种Map都快以在你向其中添加更多的元素时,自动调整其尺寸.容

Java 持有对象学习笔记

1. 持有对象:说的就是容器,持有别的对象的对象: 2. Interator 可以移除由 next() 产生的最后一个对象,这意味着在调用一个 remove() 之前必须先调用 next() : 3. 迭代器统一了对容器的访问方式: 4. 程序通常是根据运行时才知道的某些条件去创建新对象: 5. 需要在任意时刻和任意位置创建任意数量的对象: 6. List Set Queue Map,Collection Container: 7. 通过使用泛型,就可以在编译器防止将错误类型的对象放置在容器中,

Java持有对象的方法——容器

通常,程序总是根据运行时才知道的某些条件去创建新对象. 在此之前,并不知道所需对象的数量,甚至不知道确切的类型. 所以,为解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象: 首先,不能依靠创建命名的引用来持有每一个对象了: MyType aReference; 原因: 不知道实际上会需要多少这样的引用.大多数语言会提供数组的方式保存对象(应该说是对象的引用) 但是,数组虽然是保存一组对象或者基本类型数据的有效方式,其由于具有固定的尺寸,在一般情况下十分受限. 解决: Java使

Java&amp;&amp;持有对象(容器小结)

如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序. -------<Thinking in Java> 通常,程序总是根据运行时才知道的某些条件去创建新对象.对象数量,对象类型尚且不能确定.为了解决这个问题,满足程序员需要在任意时刻和任意位置创建任意数量对象的要求.Java实用类库提供了一套相当完整的容器类来解决这个问题(因为数组受到固定尺寸的左右).其中基本的类型是List,Set,Queue和Map.这些对象类型也称为集合类,但由于java的类库中实用了co

Java持有对象--根据编程思想

1:用ArrayList来添加add数据,和size知道ArrayList的容器元素的个数,但是可以添加不同类型的元素,这样就会报错,但是JavaSE5用注解解决了这一问题(@SuppressWarnings("all")),抑制了错误信息@SuppressWarning注解,表示不接受检查异常,还有就是使用泛型来规避 2:Java容器是用来保存对象,划分为两个不同的概念,collection和Map collection 有List必须按照顺序来插入数据,set不允许有重复的数据,Q

Java 持有对象

如果一个程序中只包含固定数量的且其生命周期都是已知的对象,那么这是一个简单的程序 通常程序总是根据运行时才知道的某些条件去创建对象,为解决这个普遍的编程问题,需要在任意时刻,任意位置创建任意数量的对象 java有多种方式保存对象,如数组,数组比较时候保存基本数据类型,但数组的尺寸固定,显得过于受限 Java 实用类库还提供了一套相当完整的容器来保存对象,其中基本的类型时Set,Queue和Map,这些对象类型也称为集合类或容器,java容器可以自动调整自己的尺寸. 容器还有一些其它特性,例如,S

走进Java中的持有对象(容器类)之一 容器分类

Java容器可以说是增强程序员编程能力的基本工具,本系列将带您深入理解容器类. 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构. 我们可以通过创建引用来持有对象,如 Class clazz; 也可以通过数组来持有多个对象,如 Class[] clazs = new Class[10]; 然而,一般情况下,我们并不知道要创建多少对象,或者以何种方式创建对象.数组显然只能创建固定长度的对象,为了使程序变得更加灵活与高效,Java类库提供了一套完整的容器类,具备完善