`
高山流水123
  • 浏览: 27498 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java----集合框架 Collection 的 List 和 Set

 
阅读更多

java----集合框架:

 1,集合(容器):一个对象,用来储存其他多个对象,例如 ArrayList 类 或 数组;

 2,ArrayList 类  代替 数组;

 3,1)Collection :

            它是一个接口,元素是Object;

            方法:add(Object o):把对象o放入集合

                      addAll(Collection c):把c中的所有对象放入集合

                      clear():清空集合

                      contains(Object o):判断对象o在集合中是否存在

                      isEmpty():判断集合是否为空

                      remove(Object o):把对象o从集合中删去

                      size():返回集合中对象的个数

             遍历:

             实现类:无直接实现类

 

            List :特点:元素有顺序(下标),可以重复;

                      方法:所有Collection的方法+自身和下标有关系的方法如下

                                add(int pos,Object o):把对象o插入到pos位置

                                get(int pos):返回pos位置的元素

                                indexOf(Object o):返回对象o在数组中的下标

                                remove(int pos):删除pos位置的元素

                                set(int pos,Object o):把pos位置的元素替换为o

                     遍历:下标遍历

                               利用迭代器 Iterator it=con.iterator(); ,迭代遍历

                        static void print(Collection con){   

                                Iterator it=con.iterator();

                                  while(it.hasNext()){

                                     Object o= it.next();

                                     system.out.println(o);

                                  }

                          }

                  实现类:1,ArrayList:用数组实现(List) 1.2 轻量级  线程不安全   查询快 增删慢

                               2,Vector  :   用数组实现        1.0 重量级   线程安全

                              3,LinkedList:用链表实现               查询慢 增删快(应用于"栈")

                             4,由于java.util.Stack 是java专用栈实现类,但是由于设计错误它不应该继承

                                  vector父类,因为vector是数组实现,其中有add方法等,而对于栈操作而言

                                  它最应该是链表实现,要有pop和push 方法,在实际中 Stack 继承了太多

                                  无用的vector的方法

                                  导致现在我们最好要自己写一个 Stack 类来自己用,代码如下:

                         class Stack{

                              private LinkedList list=new LinkedList();

                              public void push(Object o){

                                   list.addFirst(o);                    

                                 }      

                              public Object pop(){

                                   Object o=list.removeFirst();

                                   return o;

                                 }                       

                          }                

            Set  :元素无顺序,内容不可重复:

                  实现类:1. HashSet :把自定义对象放入HashSet,为保证元素不重复,必须:

                                     1) 覆盖hashCode() 保证相同对象返回相同的int,

                                         提高效率考虑,尽量保证不同对象返回不同的int;

                                           public int hashCode(){

                                                 return age+name.hasCode();

                                             }        

                                     2) 覆盖equals()   保证相同对象返回 true;         

                                                  (中有hashcode 用code来判断插到数组哪里,

                                                   当code值%数组长度 的值和之前的相同,调用equals,

                                                   判断内容是否相同,相同不加,不同放在数组下一个位置)

                                          public int hashCode(){

                                                    return age; // 或是 return age+name.hasCode();

                                          }        

                                 2.  TreeSet   实现了 SortedSet (Set的子接口)

                                      TreeSet 对元素自动排序,要求元素对象必须实现Comparable 接口; 

                   遍历:利用迭代器 Iterator it=con.iterator(); ,迭代遍历

                           static void print(Collection con){   

                                Iterator it=set.iterator();

                                  while(it.hasNext()){

                                     Object o= it.next();

                                     system.out.println(o);

                                  }

                            }

 

   Collection<E>中的E是泛型

 

           

分享到:
评论

相关推荐

    Java-collection-frame.rar_Java集合框架

    在Java集合框架中,主要分为两大类:List(列表)、Set(集合)和Map(映射)。 1. List接口:List是一种有序的集合,允许包含重复元素。它定义了元素的插入、删除和访问方法,如add()、remove()和get()。ArrayList...

    精通java集合框架--List,Set..

    本文将深入探讨Java集合框架的核心概念,包括`List`、`Set`、`Map`以及它们之间的区别和联系。 #### Java集合框架简介 Java集合框架是Java平台的一部分,它由一系列接口组成,这些接口描述了不同类型的容器,比如...

    Java集合Collection、List、Set、Map使用详解

    Java集合框架主要分为两大类:**Collection** 和 **Map**。Collection接口下有List和Set两个子接口,而Map接口则用于存储键值对。 ### Collection 1.2.1 常用方法 Collection接口定义了许多通用方法,如`add()`, `...

    Java_Collection_List-Set-Map.zip_list set map

    在Java编程语言中,集合框架是处理对象组的重要工具,主要包括List、Set和Map三大接口。这些接口由Java Collection Framework提供,它是一个统一的架构,用于存储和操作各种类型的对象。接下来,我们将深入探讨这三...

    Java集合框架Collection接口.pdf

    ### Java集合框架Collection接口详解 #### 一、Java集合框架简介 Java集合框架(Java Collection Framework)是Java标准库中的一个重要组成部分,它提供了一系列用于存储和操作数据集合的接口和实现类。这些接口和...

    Java集合框架详解

    本文将深入解析Java集合框架的各个方面,包括Collection、List、Set和Map,以及它们的相关实现和使用原理。 **1. 集合框架概述** 集合框架是一个统一的数据结构和算法的集合,它提供了对数据进行高效处理的工具。...

    Java-Interview-超全集合github上评分最高的jiva面试题

    2. **集合框架** - **List**:ArrayList、LinkedList的实现原理和应用场景,以及它们在性能上的差异。 - **Set**:HashSet、TreeSet的特性,以及它们对元素的唯一性保证。 - **Map**:HashMap、TreeMap、...

    java集合框架之Collection实例解析

    Java集合框架是Java编程语言中一个非常重要的组成部分,它为数据存储和操作提供了丰富的接口和类。本篇文章将深入解析`Collection`接口及其主要实现类`List`和`Set`,帮助你理解并熟练运用这些核心概念。 首先,`...

    Java集合框架图

    Java集合List集合Set集合Map集合Collection和collections工具类的框架图

    java集合框架图

    在Java集合框架中,主要有六种核心接口:`Collection`, `Set`, `List`, `Queue`, `Deque`, 和 `Map`。此外,还有五个抽象类以及多个实现类,它们共同构成了Java集合框架的基础。 #### 二、核心接口介绍 1. **`...

    Java集合框架常见面试题.pdf

    总结来说,Java集合框架为开发者提供了丰富的数据结构以应对不同场景的需要,从简单的List和Set到复杂的Map结构,再到线程安全的集合实现,每个组件都有其特定的用途和优势。在面试中,理解并能够熟练运用这些集合类...

    Java集合Collection、List、Set、Map使用详解编程资料

    Java集合Collection、List、Set、Map使用详解

    Java集合Collection、List、Set、Map使用详解.pdf

    Collection接口是Java集合框架的根接口,定义了基本的集合操作,而List接口和Set接口继承自Collection接口,提供了有序和无序的集合操作。Map接口提供了键值对的存储和操作。 Java集合框架是Java语言中最基本也是最...

    Java集合:Collection、List、Set、Map使用详解

    本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...

    Java--collection.rar_SEP_java 集合

    Java集合框架是Java编程语言中的一个核心组件,它为数据存储和管理提供了强大的支持。这个框架包括了多种接口和类,使得程序员可以高效地处理对象集合。在"Java--collection.rar"这个压缩包中,我们可以找到名为...

    Java集合框架总结

    Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和操作数据。本文档将深入探讨Java集合框架的关键组成...

    java泛型集合 java集合 集合 java Collection

    Java集合框架是一个包含多种数据结构(如列表、集、队列等)的API,这些数据结构由接口(如`Collection`、`List`、`Set`和`Queue`)和实现这些接口的类(如`ArrayList`、`HashSet`和`LinkedList`)组成。`Collection...

Global site tag (gtag.js) - Google Analytics