`
dasheng
  • 浏览: 148613 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

<java编程思想>学习笔记11 第11章 持有对象

阅读更多

1,范型和类型安全的容器

 

  @SuppressWarning("unchecked")  类型检查的警告, 被忽略!

 

Collection:一个独立元素的序列,这些元素都服从一个或多个规则。

 

Map:一组成对的“键值对”对象,允许你使用键来查找值。

 

2,容器的打印

 

打印数组,用Arrays.toString()来打印。打容器则不需要,直接system.out.println(collection)即可。

 

ArrayList,LinkedList都是List类型,前者随机访问比较快,后者优势在于顺序访问;

 

HashSet,TreeSet,LinkedHashSet都是set,每个相同的项只保存一份;

 

HashSet速度最快;

 

TreeSet按照升序保存对象;

 

LinkedHashSet按照被添加的顺序保留对象。

 

 

Map使得 你可以用健来查找对象。

 

HashMap:最快的查找技术;

 

TreeMap:按升序保留键;

 

LinkedHashMap:按照插入顺序保留键,还保留了HashMap的查询速度。

 

3,迭代器

 

迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户程序员不必知道或关心该序列底层的结构。通常称为

 

轻量级对象。因为创建他的代价很小:java的迭代器只能单向移动:

 

  1. 使用方法Iterator()要求容器返回一个Iterato;
  2. 使用next()获得序列的下一个元素;
  3. 使用hasNext()检查序列是否还有元素;
  4. 使用Remove()方法返回最近删除的元素;

4,ListIterator

 

ListIterator是一个更加强大的Iterator字类型,它只能用于各种list的访问。它可以双向移动访问。

 

public class ListIteration {
  public static void main(String[] args) {
    List<Pet> pets = Pets.arrayList(8);
    ListIterator<Pet> it = pets.listIterator();
    while(it.hasNext())
      System.out.print(it.next() + ", " + it.nextIndex() +
        ", " + it.previousIndex() + "; ");
    System.out.println();
    // Backwards:
    while(it.hasPrevious())
      System.out.print(it.previous().id() + " ");
    System.out.println();
    System.out.println(pets); 
    it = pets.listIterator(3);
    while(it.hasNext()) {
      it.next();
      it.set(Pets.randomPet());
    }
    System.out.println(pets);
  }
} /* Output:

 

 

5,各种队列和栈的行为,由LinkedList提供支持。

 

public class Stack<T> {
  private LinkedList<T> storage = new LinkedList<T>();
  public void push(T v) { storage.addFirst(v); }
  public T peek() { return storage.getFirst(); }
  public T pop() { return storage.removeFirst(); }
  public boolean empty() { return storage.isEmpty(); }
  public String toString() { return storage.toString(); }
} ///:~

6,新程序中不应该使用过期的Vector,Hashtable和Stack

分享到:
评论

相关推荐

    <<JAVA学习笔记>>实例源代码

    本压缩包中包含的"Example"文件夹,极有可能是《JAVA学习笔记》一书中的实例源代码,旨在帮助读者深入理解书中讲解的Java编程原理和实践技巧。下面我们将对这些源代码进行详细解读,以便更好地掌握Java编程。 1. **...

    JAVA个人学习笔记

    JAVA学习笔记是面向对象编程语言的学习笔记,涵盖了JAVA的基本概念、面向对象编程思想、类和对象的概念、实例变量和局部变量的区别、方法的定义和调用、类型转换、精度问题、移位问题、switch语句的使用等内容。...

    java编程思想读书笔记

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地讲解了Java语言的核心概念和编程技术。这份读书笔记记录了读者在研读此书过程中的理解和体会,涵盖了从基础语法到高级特性的全面解析。以下是笔记中...

    Java编程思想学习笔记

    在讨论Java编程思想学习笔记时,首先需要了解的是Java语言的平台无关性,而这一特性正是通过Java虚拟机(JVM)得以实现的。JVM作为Java程序设计的关键组成部分,对于Java开发人员来说是必须掌握的基础知识。在该学习...

    Java学习笔记学习笔记

    Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...

    java编程思想笔记

    java编程思想笔记,建议与书本结合使用。。。。。。。。。。。

    Java 学习笔记-手机书 Rev.3 (080603)

    前言:&lt;br&gt;为了学习java方便,特整理成txt,这样上下班的一个多小时路程就可以充分利用了。&lt;br&gt;此份所有内容皆出自我的偶像:林信良(良葛格)的Java 学习笔记,网址:&lt;br&gt;...

    Java面向对象编程学习笔记.pdf

    Java面向对象编程学习笔记是Java程序设计语言中面向对象编程(Object-Oriented Programming,OOP)的一份学习笔记。面向对象编程是一种软件设计方法,它强调使用对象和类来模拟现实世界中的实体和系统。 一、类和...

    《java编程思想》之学习笔记

    java编程思想的笔记。是别人的学习笔记。

    Java编程思想-笔记.docx

    本笔记涵盖了Java编程思想的多个方面,包括访问权限控制、封装、继承、多态、接口、内部类、持有对象等。 访问权限控制 访问权限控制是为了把变动的事物与保持不变的事物区分开来。Java中有四种访问权限修饰词:...

    jive.chm

    1 应用Struts的网站建设 &lt;br&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;Java基础&lt;br&gt; 1 20个Java基础Tips &lt;br&gt; 2 abstract,static,final修饰符 &lt;br&gt; 3 ChinaUnix.net Java精华贴 &lt;br&gt; 4 ANT学习笔记 &lt;br&gt; 5 极度性能调整 &lt;br&gt;&lt;br&gt; &lt;br&gt;FAQs&lt;br&gt;...

    Java编程思想读书笔记.doc

    ### Java编程思想读书笔记知识点梳理 #### 第1、2章:万事万物皆对象 ##### 一、所有对象都必须由你建立 - **存储位置**: - **寄存器**:程序中不可控。 - **栈 (Stack)**:存放基本类型数据和对象引用,对象...

    JAVA的面向对象编程学习笔记

    JAVA的面向对象编程学习笔记

    Java 学习笔记Java学习笔记

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。

Global site tag (gtag.js) - Google Analytics