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

      java集合框架(Java Collection Framework,简称JCF)是由一组类和接口组成的。其主要功能就是用来将储存的数据以某种特定的结构组织,并以特定的方式访问。其目的就是提供一个处理对象集合的通用框架,减少程序员处理不同对象集合是的编码量。

      集合类中的一些区别,一是是否支持重复元素,二是包含的元素是否有序,三是集合类中元素是否能为null元素。所以集合将对象分为了三种类型:

        Set(集):对象容器中的对象没有顺序,并且不能重复。

        List(列表):对象容器中的对象按照索引顺序排序,并且可以有重复的对象。

        Map(映射):对象容器中的元素包含着一对“键对象(Key)-值对象(Value)”映射,其中键对象不能重复,值对象可以重复。

      Set接口继承了Collection接口。set集合包含许多方法。下面我们用HashSet来说明Set的特征:

    package pkg;
    
    import java.util.*;
    
    public class HashSetDemo{
        public static void main(String[] args) {
         /*new 一个HashSet对象,泛型是<String>*/ Set
    <String> set = new HashSet<String>(); String str1 = "123"; String str2 = "234"; String str3 = "345"; String str4 = "456"; set.add(str1); set.add(str2); set.add(str3); set.add(str4);
    //通过foreach遍历
    for (String string : set) { System.out.println(string); } } }

    代码中遍历的结果是随机的,代码中遍历的元素是没有顺序的。这便体现了Set中的特征。

      List接口也是继承于Collection接口的,因为List中的元素是有序的,所以我们可以通过元素的位置(也就是索引)来直接引用元素。List接口中的ArrayList和数组类似,表示一组输入索引的元素,区别在于ArrayList没有固定的大小,长度可变。我们来看看ArrayList的操作:

    import java.util.*;
    
    public class ArrayListDemo {
        public static void main(String[] args) {
            //new 一个ArrayList对象
            List list = new ArrayList();
            //添加元素
            list.add(1);
            list.add("abc");
            list.add(10);
            list.add(new Integer(4));
            //根据索引删除元素
            list.remove(0);
            //重置元素
            list.set(0, 22);
            for(int i=0;i<list.size();i++){//size是求ArrayList的长度
                System.out.println(i + "=" + list.get(i));//get是显示ArrayList中的元素
            }
        }
    }

      再有就是map接口,在map中键(key)和值(value)是一一对应的,通过指定的键,可以找到对应的唯一的值。HashMap是基于哈希算法的map接口实现的,将键保存在哈希表中进行维护,键是唯一的。但是HashMap并不保证键是以特定的顺序排列。下面我们看看HashMap的基本用法:

    import java.util.*;
    
    public class HashMapDemo {
        public static void main(String[] args) {
            //new 一个HashMap对象
            Map<String,String> map = new HashMap<String,String>();
            //在Map接口中是用put方法添加键值对的
            map.put("a1", "abc");
            map.put("b1", "12");
            map.put("S0001", "张三"+"  男");
            //删除
            map.remove("a1");
            //使用iterator遍历
            Set<String> keys = map.keySet();
            for(Iterator<String> i = keys.iterator();i.hasNext();){
                String key = i.next();
                String value = map.get(key);
                System.out.println(key + "=" +value);
            }
        }
    }

      以上就是集合中关于Set、List、Map的基本概念和操作。最后在说说泛型,泛型在代码中用<E>表示(其中E只是个占位符),泛型就是允许在定义类或者接口时指定类型形式参数,这个类型形式参数将在声明变量、创建对象时确定(即传入的实际参数)。通过泛型将参数类型化后,我们就可以强迫程序在编译期就检查从集合中取得的数据类型,以达类型安全的目的,并省去从集合取出数据在转型的动作。

  • 相关阅读:
    计算机网络中的多路复用技术
    ActiveMQ之一--ActiveMQ入门
    ehcache介绍
    I/O模型之二:Linux IO模式及 select、poll、epoll详解
    【甘道夫】HBase(0.96以上版本号)过滤器Filter具体解释及实例代码
    Android Studio安装及主题字体配置
    HDU 2136 Largest prime factor 參考代码
    update更新两个字段
    Hadoop对小文件的解决方式
    赵雅智_ContentProvider
  • 原文地址:https://www.cnblogs.com/gzyfj/p/4438900.html
Copyright © 2011-2022 走看看