zoukankan      html  css  js  c++  java
  • 集合框架一

    java集合框架为我们提供了一套性能优良、使用方便的接口和类,他们都为与java.util包中,java集合框架包含主要内容及彼此之间的关系(如下图):

    集合框架是为了表示和操作集合而规定的一种统一的标准体系结构,集合框架包含三大块内容:

    1.接口:表示集合的抽象数据类型,如cellection、list、Set、Map、Iterator

    2.实现:集合框架中接口的具体实现,图中粗实线框表示常用的实现,ArrayList、HashSet、HashMap

    3.算法:在一个实现了某个集合框架的接口的对象身上完成某种有用的计算的方法,如查找、排序等。Java提供了对集合操作的工具类Collections(注意不是Collection,类似于Arrays类),他提供了对进行集合进行排序等多种算法实现

    cellection、list、Set、Map、Iterator的区别:

    Collection接口存储一组不唯一(允许重复)、无序的对象

    Set接口继承Collection接口,存储一组唯一(不允许重复)、无序的对象

    List接口继承Collection接口,存储一组不唯一(允许重复)、有序(以元素插入的次序来放置元素,不会重新排列)的对象

    Map接口存储一组成对的键-值对象,提供key(键)到value(值)的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复

    Iterator接口是负责定义访问和遍历元素的接口

    List接口

    ArrayList集合类对数组进行了封装,实现了长度可变的数组,Arraylist存储数据的方式和数组相同,都是在内存中分配连续的空间,它的优点在于遍历元素和随机访问元素的效率比较高

                                                               List接口定义的各种常用方法

    方法名称· 说明
    boolean add(Object obj) 在列表的末尾顺序添加元素,起始索引位置从 0 开始
    void add(int index,Object obj) 在指定的索引位置元素注意:索引位置必须介于 0和列表中元素个数之间
    int  size() 返回列表中的元素个数
    Object get(int index) 返回指定索引位置处的元素注意:取出的元素是 Object类型,使用前需要进行强制类型转换
    boolean contains(Object obj) 判断列表中是否存在指定元素
    boolean remove(Object obj) 从列表中删除元素
    Object remove(int index) 从列表中删除指定位置元素,起始索引位置从 0 开始

    例子:

    定义一个类Person

    package cn.practice1;
    
    public class Person {
       private String name;
       private int age;
       
       
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
       
    }

    在main方法中创建对象,保存ArrayList集合中

    import java.util.ArrayList;
    public
    class Test { public static void main(String[] args) { // TODO Auto-generated method stub Person person =new Person(); person.setName("哈哈"); person.setAge(55); Person person2 =new Person(); person2.setName("吼吼"); person2.setAge(22); ArrayList<Person> list=new ArrayList<Person>(); //向集合中添加对象 list.add(person); list.add(person2); //遍历集合 for(int i=0;i<list.size();i++){ System.out.println(list.get(i).getName()); } for (Person person3 : list) { System.out.println(person3.getName()); } }

    LinkedList集合类

    inkedList 采用链表存储方式,优点在于插入、删除元素时效率比较高,它提供了额外的 addFirst()、addLast()、removeFirst()和 removeLast()等方法,可以在
     
    LinkedList 的首部或尾部进行插入或者删除操作。这些方法使得LinkedList 可被用作堆栈(stack)或者对列(queue)。
                                      LinkedList 的各种常用方法
    方法名称 说明

    void  addFirst(Object o)

    在列表的首部添加元素

    void  addLast(Object o)

    在列表的末尾添加元素

    Object  getFirst()

    返回列表中的第一个元素

    Object  getLast()

    返回列表中的最后一个元素

    Object   removeFirst()

    删除并返回列表中的第一个元素

    Object  removeLast()

    删除并返回列表中的最后一个元素

     例子:

    package cn.practice1;
    
    public class Person {
       private String name;
       private int age;
       
       
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
       
    }
    import java.util.LinkedList;
    
    public class Test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
          Person person =new Person();
          person.setName("哈哈");
          person.setAge(55);
          
          Person person2 =new Person();
          person2.setName("吼吼");
          person2.setAge(22);
          
       
          
          LinkedList<Person> linkedList=new LinkedList<Person>();
    //向LinkedList添加元素
          linkedList.add(person);
          linkedList.add(person2);
    //遍历LinkedList
          for (int i = 0; i < linkedList.size(); i++) {
            System.out.println(linkedList.get(i).getName());
        }
    }
  • 相关阅读:
    golang学习----nil值
    CentOS配置multipath
    oracle基础-创建表空间
    oracle数据库基本命令
    CentOS使用fdisk扩展磁盘空间
    CentOS增加swap分区
    VMWARE错误-"VirtualInfrastructure.Utils.ClientsXml"的类型初始值设定项引发异常
    windows server 2008远程桌面最大连接数设置
    windows sserver 2008远程桌面端口修改
    iSCSI配置
  • 原文地址:https://www.cnblogs.com/luoxionghenku/p/8528219.html
Copyright © 2011-2022 走看看