Java集合框架(JCF)之collention

  一.概念:是为了实现某一目的或功能而预先提供的一系列封装好了的具有继承或实现的类与接口。

  二.特点:

    1.元素的类型可以不同  2.集合长度可变 3.空间不固定

  三.collection与collections的比较

1.collection是封装东西的核心接口,

    2.collections是操作集合的一个算法类。

  四.collection接口下包括有(list、set、map)三种集合

    1.list集合(包含Arraylist、linkedlist、vector)——————>列表

      ①特点:线性,即是有序;元素放入的顺序和元素存储的顺序保持一致,表象上list最大的特点就是有下标。

      ②:Arraylist与linkedlist的选用及Arraylist与vector的区别

        ②-①:Arraylist与linkedlist的选用

           Arraylist:就是作为一个数组的封装出现的底层就是一个数组(在需要多次遍历且需要做大量查询时的时候使用)。

           linkedlist:底层封装的是一个双向链表(当需要做大量的增、删特别是中间的增删时使用)。

        ②-②:Arraylist与vector的区别

          vector:在考虑线程安全时用它,用法和Arraylist一样。

      ③:使用Arraylist从增、删、改、查语法的使用:

        Arraylist  lst = new Arraylist();

        增:lst.add("hello");  lst.add(new Date());//可以放任何类型的数据

        改:lst.set(0,"world");//修改里面的数据时,需要给定下标和修改的数值

        删:lst.remove(0);//直接给定我们想要删除值的对应下标即可

        查:Date  now = (Date)lst.get(0);//由上面的增、改、删顺序下来,我们上面删除了下标为零的数据,则 lst.add(new Date());从下标1变成下标为0的数值

      ④:linkedlist的用法和Arraylist的增、删、改、查是一样的,只需要把上面的代码中的Arraylist换成linkedlist即可。

      ⑤:泛型——用来控制集合只能操作某一种数据类型时使用:

       例:

         linkedlist <String> lst = new  linkedlist <String>();//此时lst里就只能放String类型的数据了

      ⑥:遍历——将集合的每一个元素依次取出,做同样的操作:

        ⑥-1.使用普通for循环进行遍历

           for(int i = 0; i < lst.size(); i ++){

            System.out.println(lst.get(i).getDate());//接③中的Date

           }

        ⑥-2.使用迭代器——Iterator完成遍历(只能 list、set集合使用)

          例:

            Iterator  it = lst.interato();返回的是Object;//接③中的Date

            while (it.hasNext() ){

              Date  d = it.next();

              System.out.println(d.getDate());      

            }

          特点:没有下标,从头到尾走一遍

        ⑥-3.for—each循环——底层封装的就是迭代器但是语法更简单,还可以操作数组

          例:

            for(Date d: lst){

              System.out.println(d.getDate());//接③中的Date

            }

    2.set(包括Hashset、Treeset)——集

      ①特点:不能放置重复的元素,没有顺序;表象上set没有下标。

      ②:常用子类Hashset(如何判断两个元素是否重复呢?)    

        ②-1:调用equals方法得到两个对象比较为true。

        ②-2:两个元素的hashcode值保持一致

       注:只有这两个条件同时满足时,Java才认为这是同一对像,所有重写equals方法,一般也要重写hashcode方法,让equals返回true的对象,hashcode也能返回同样的整数值。

      ③:Hashset从增、删、改、查语法的使用:

        增:增加放置元素的方法与Arraylist的方法相同

        改:没有修改方法

        删:只能根据对象进行删除,还是用的equals和hashcode来判断到底删除哪一个对象。

        查:无法获取某一个指定的元素

      ④:遍历——将集合中的每一个元素一次取出,做同样的操作

        ④-1:不支持普通for循环,因为没有下标

        ④-2:支持迭代器

        ④-3:支持for—each循环

      注:遍历方法和Arraylist相同。

    3.Map(hashmap、properis)——映射

      ①特点:键值对,键要求唯一,值可以重复。(放入元素的顺序和存储顺序无关)

      ②常用子类:HashMap(主要用于集合操作);Properis(专用于操作属性文件)

      ③:HashMap的使用       

import com.lovo.bean.StudentBean;

public class TestMap {
    public static void main(String[] args) {
        HashMap<String, StudentBean> map = new HashMap<String, StudentBean>();
        //增加元素
        map.put("j34001", new StudentBean("zhang3",18,80));
        map.put("j34002", new StudentBean("li4",28,85));
        map.put("j34003", new StudentBean("wang5",18,87));
        //得到长度
        System.out.println(map.size());
        //修改元素
        map.put("j34003", new StudentBean("zhao6",24,75));
        //删除元素---通过键去移除元素
        map.remove("j34003");
        //获取指定的元素对象
        StudentBean stu = map.get("j34003");
        //遍历Map
        //不能同时遍历键和值;只能分开遍历
        //遍历所有的键
        Set<String> keySet = map.keySet();//得到所有的键,装入一个Set集合中,返回给调用者
        for(String key : keySet){
            System.out.println(key);
        }
        //遍历所有的值
        Collection<StudentBean> allStus = map.values();//得到所有的值,思考为什么不返回List或其它集合类型?
        for(StudentBean tmpStu : allStus){
            System.out.println(tmpStu.getName());
        }
    }
}

      ④:Properis的使用     

package com.lovo.props;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class TestProperties {
    public static void main(String[] args) {
        Properties props = new Properties();//首先产生Properties集合容器
        props.setProperty("J134001", "chenGuo");//调用setProperty方法放入元素,每个元素都是一对键值对
        props.setProperty("J134002", "李四");//第一个参数是键,要求不能重复
        props.setProperty("J134003", "张三");//第二个参数是值
        props.setProperty("J134003", "赵六");//如果出现放入重复值的情况,相当于修改而不是新增

        String name = props.getProperty("J134001");//通过键取集合中的值,如果键不存在则返回null
        System.out.println(name);
        props.remove("J134002");//根据键删除整个键值对
        System.out.println(props.getProperty("J134002"));
        int size = props.size();//获得容器中的元素个数//Properties操作的文件必须是固定格式的文本文件---属性文件---将是工作中使用率排名第二的配置文件
        //存文件
//        try {
//            props.store(new FileOutputStream("file/student.properties"), "");
//        } catch (FileNotFoundException e) //            e.printStackTrace();
//        } catch (IOException e) {//            e.printStackTrace();
//        }

        //读文件
        Properties newProps = new Properties();
        try {
            newProps.load(new FileInputStream("file/student.properties"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(newProps.getProperty("J134001"));
        System.out.println(newProps.size());

    }

}
时间: 2024-10-13 14:51:12

Java集合框架(JCF)之collention的相关文章

JAVA——Java集合框架

1. 什么是框架:类库的集合 2.集合框架:用来表示和操作的统一的架构,包含了实现集合的接口与类 3.集合:存放数据的容器 集合框架包含了两部分:一部分是接口,一部分是类 4.为什么会出现接口:因为集合框架中的很多类 功能是相似的[所以用接口来规范类] Java  SE包含了由一组类和接口组成的Java集合框架(JCF),其主要功能是用来将存储的数据以某种结构组织,并以特定的方式来访问. Set接口的3种实现: HashSet的对象必须实现hashCode方法,javaAPI大多数类实现了has

Java 集合框架初步

Java 集合框架 JCF(Java Collections Framework) Collections Collection提供关于集合的一些通用操作的接口 包括: 插入add() 删除remove() 判断一个元素是不是其成员contains 遍历iterator() List--有序集合 Set--无序集合,不予许存在重复值 Map--映射 集合初步 熟悉使用ArrayList 开始学会使用jdk的api文档 ArrayList----List接口的一个实现 有序,允许存在重复值 imp

Java集合框架介绍。Java Collection Frameworks = JCF

Java集合框架 = Java Collection Frameworks  = JCF . 为了方便理解,我画了一张思维脑图.

《JAVA集合框架(JCF)》

Java SE 包含了由一组类和接口组成的Java集合框架(Java Collection Framework,简称JCF),其主要功能是用来将存储的数据以某种结构组织,并以特定的方式来访问这些数据,其目标是提供一个处理对象集合的通用框架,减少程序员处理不同的对象集合时的编码量,而Java集合类都位于java.util包中. 接下来就简单的谈下JCF类的内容.首先Java集合框架将对象的存储方式分为三种类型,分别是:Set(集).List(列表).Map(映射). Set(集):对象容器中的对象

《深入理解Java集合框架》系列文章

Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framework, JCF)的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小的麻烦.我深深的不解其中的原因.虽然JCF设计参考了STL,但其定位不是Java版的STL,而是要实现一个精简紧凑的容器框架,对STL的介绍自然不能替代对JCF的介绍. 本系列文章主要从数据结构和算法层面分析

Java集合框架Koloboke详解

Java集合框架Koloboke详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Koloboke的目标是替换标准的Java集合和流的API,提供更高效的实现.Koloboke目前的版本主要是替换java.util.HashSet和java.util.HashMap. Koloboke提供了一套完整的集合原始类型的实现,可以避免开销很大的装箱/拆箱操作,节省了原始类型装箱消耗的内存. 在Koloboke中,Has

异常处理、常用类、Java集合框架、反射

异常处理: 1.  异常:程序在执行过程中所产生的问题. 异常的三种类:①检查异常:又叫checdked异常或者受检异常.通常是用户错误或者不能被程序员所预见的问题.检查异常需要被解决之后才能通过编译. ②运行时异常:程序在运行过程中可能发生的.可以被程序员所避免的异常类型. ③错误:事实上错误不是异常,但却是用户和程序员无法控制的问题. 2.  异常的控制流程: 异常是被一个方法抛出的对象. (1) 处理异常的三个方法:①捕获这个异常,不让它沿着调用栈继续向下抛. ②捕获这个异常,并继续向下抛

Java—集合框架List

集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中) 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 与数组相比 数组的长度

JAVA集合框架

收藏 查看我的收藏 146有用+1 56 编辑 Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台.动态的Web.Internet计算.从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet.集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何集合框架都包含三大块内容:对外的接口.接口的实