博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合类--容器
阅读量:5086 次
发布时间:2019-06-13

本文共 5208 字,大约阅读时间需要 17 分钟。

一.集合类:专门用来存储java类的对象,数组长度可变,存储的是引用型的元素对象,之所以可以存储基本类型数据是因为系统的自动装箱功能

二.容器关系图

 

    

 

三.Coolection接口是构造集合框架的基础,声明了所有集合类的核心方法

    

1 import java.util.ArrayList; 2 //removeAll移除指定集合(交集) 3 public class Demo_removeAll 4 { 5    public static void main(String[] args)  6    { 7     ArrayList a=new ArrayList(); 8     a.add("小"); 9     a.add("机");10     a.add("灵");11     a.add("鬼");12     13     ArrayList b=new ArrayList();14     b.add("小");15     16     a.removeAll(b);17     System.out.println(a);18    }19 }

 

 

 

     

四.实现list接口的类

    4.1.1 ArrayList(数组列表),可以把ArrayList看做一个长度可变的数组

   4.1.2 add方法-->添加元素

         get方法-->获取元素

         size()-->元素个数

  4.1.3 ArrayList集合底层是用数组来保存元素的,增加或删除元素,会导致创建新的数组,效率低,不适合做大量操作

1 import java.util.ArrayList; 2  3 public class Test14  4 { 5   public static void main(String[] args)  6   { 7       //定义一个数组列表 8       ArrayList array=new ArrayList(); 9       //使用add方法添加三个字符串值进去10       array.add("不要为了合群而合群");11       array.add("那纯碎是浪费你的青春");12       array.add("努力最大的意义我终于明白了");13       //使用get方法获取数组列表中的元素14       String s=(String) array.get(0);15       String s1=(String) array.get(1);16       String s2=(String) array.get(2);17       18       System.out.println(s);19       System.out.println(s1);20       System.out.println(s2);21       System.out.println("********************");22       23       for(int i=0;i

 

 

 

 4.2.1 LInkedLIst(链表)集合

引用的方式来链接所有元素,插入新元素-->修改元素之间的这种引用关系(就是对象地址)

五.实现set接口的类

  5.1 hashCode类:根据对象哈希值来确定元素在集合中的位置

   5.2 hashCode无序不可重复

   5.3 添加对象时,先调用对象hashCode方法确定存储位置,再调用equals方法确保没有该位置重复元素(简单的理解就是不能添加相同引用对象,因为地址相同)

 

1 import java.util.HashSet; 2  3 public class Test15 4 { 5    public static void main(String[] args) 6    { 7       HashSet set=new HashSet();//创建HashSet对象 8       set.add(new Person("张三"));//传入引用对象元素 9       set.add(new Person("李四"));10       set.add(new Person("张三"));//元素值虽然相同,但比较的是地址11       12       System.out.println(set);//调用toString方法,set是无序的,不可重复13       14       System.out.println("*************************");15       16       set.clear();//清空元素17       18       Person p=new Person("张三");19       System.out.println(set.add(p));//若成功插入显示true20       System.out.println(set);21     //set添加新的元素时,会检查set中的原有元素是否和插入新元素equals22      //若有则不能添加,返回false23       System.out.println(set.add(p));24       25       System.out.println("**************");26       set.clear();27       String s1="小冰晶";28       String s2="小冰晶";29       System.out.println("hash code:"+s1.equals(s2));//证明了set接口是不重复30       System.out.println(set.add(s1));31       System.out.println(set);32       System.out.println(set.add(s2));//s2和s1地址相等33    }34 }35 36 class Person37 {38     String name;//姓名属性39     //构造方法初始化值40     public Person(String name)41     {42         this.name=name;43     }44     //重写toString方法45     public String toString()46     {47         return name;48     }49 }

 

六.Iterator迭代器

  

1 import java.util.HashSet; 2 import java.util.Iterator; 3  4 public class Demo_Iterator 5 { 6      public static void main(String[] args)  7      { 8        //创建HashSet对象 9          HashSet it=new HashSet();10          //添加元素对象11          it.add("学");12          it.add("习");13          it.add("使");14          it.add("我");15          it.add("快");16          it.add("乐");17          //迭代器管理获得迭代对象18          Iterator lo=(Iterator) it.iterator();19          //循环遍历20          while(lo.hasNext())//用游标判断是否有下一个元素21          {22              String str=(String)lo.next();23              System.out.print(str+" ");24          }25          System.out.println();26          System.out.println("*******************");27          28          for(Iterator in=it.iterator();in.hasNext();)29          {30              String str1=(String)in.next();31              System.out.print(str1+" ");32          }33      }34 }

 七.映射接口Map-->给定一个关键字得到它的值,可理解为数学中的函数中的自变量和因变量的关系

7.1 Map接口不能出现重复的key

7.2 两个常用实现Map接口的类:HashMap(散列表实现)和TreeMap(二叉树原理) 

 

1 /** 2  * void put(Object key,Object Value)指定键和与其相对应的映射值 3  * Set KeySet返回此映射中包含的键的Set视图 4  * Object get(Object key)放入键得到映射的值 5  */ 6 import java.util.HashMap; 7 import java.util.Iterator; 8 import java.util.Map; 9 import java.util.Set;10 11 public class Demo_Map12 {13    public static void main(String[] args) 14    {15        Map map=new HashMap();//创建Map接口对象-->父类引用指向子类对象16        map.put("巫妖果子", "周俊明");//加入键值和对应的值17        map.put("叩骨", "吴梦婷");//加入键值和对应的值18        map.put("哒姐姐", "肖群");//加入键值和对应的值19        20        System.out.println(map);21        Set set=map.keySet();//获得存储Map中的所有键的set集合22        23        for(Iterator it=set.iterator();it.hasNext();)//使用迭代器遍历键24        {25            String key=(String)it.next();//得到键26            String value=(String)map.get(key);//输入键得到相应值27            System.out.println(key+"="+value);28        }29     }30 }

 

 八.TreeMap

 

1 import java.util.Map; 2 import java.util.TreeMap; 3 /** 4  * TreeMap的特点: 5  *         TreeMap底层采用的是二叉树算法,可以实现自动对键进行排序 6  *         TreeMap可以保证键的顺序 7  * @author 罗摩衔那 8  * 9  */10 public class Demo_TreeMap11 {12   public static void main(String[] args) 13   {14     Map
map=new TreeMap<>();15 map.put("001","小龙女");16 map.put("002","独孤求败");17 map.put("003","万古长空-妖帝空");18 map.put("004","一朝风月-妖帝月"); 19 System.out.println(map);20 }21 }

 

 

转载于:https://www.cnblogs.com/zjm1999/p/10029277.html

你可能感兴趣的文章
使用spring boot 2.1.8生成的maven项目pom.xml第一行报错unknown error
查看>>
@Data注解简化代码
查看>>
青春大概
查看>>
7月总结
查看>>
关于英语写作和阅读的学习——施一公教授的两篇博文
查看>>
将项目加入tfs源代码管理
查看>>
【2.1】模型层简介
查看>>
python3安装文件遇到ssl未安装问题
查看>>
【2.4】初识Django Admin模块
查看>>
【3.2】初识Django的模板系统
查看>>
【2.5】实现博客数据返回页面
查看>>
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Linux(Centos)之安装Redis及注意事项
查看>>
【3.1】使用Bootstrap实现静态博客页面
查看>>
【1.1】爬虫基本原理讲解
查看>>
【3.3】使用模板系统渲染博客页面
查看>>
django+markdown
查看>>
【3.4】实现文章详情页的跳转
查看>>