欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

集合 (Set List Map)

程序员文章站 2022-07-14 08:30:57
...

Java集合类存放于 java.util 包中,是一个用来存放对象的容器。
①、集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类型都有对应的引用类型。
②、集合存放的是多个对象的引用,对象本身还是放在堆内存中。
③、集合可以存放不同类型,不限数量的数据类型。

Set集合

Set 集合; 一般指Hash Set

Hash Set

集合 (Set List Map)
一:HashSet

  • .创建HashSet集合

    —加入不同类型的元素

     Set set = new HashSet();            
     Set< Object > set = new HashSet< Object >();
     此set集合中可以存不同的类型 
    

    — 加入相同类型的元素(用泛型进行限制)
    泛型 使用泛型后集合只能存同样的类型
    例: String 类型

      	Set< String > set1 = new HashSet< String >();
     	set1.add("abc");
     	// set1.add(1); 错误
    
  • HashSet特点:
    集合中元素不重复
    按照Hash Code值排序

  • 加入元素

      set.add(1); 
       set.add('a');  
      set.add("c");
      set.add(true);
      set.add(null);
    	 [null, 1, a, c, true]
    
  • 删除元素

     set.remove(1);
     set.remove(true);
    
  • 获取集合的元素个数

    System.out.println(set.size()); 
    
  • 判断某个元素是否在集合中 返回boolean类型

     System.out.println(set.contains(1));
    
  • 清空元素

     set.clear(); 
    
  • .输出

     System.out.println(set);
    
  • 遍历集合

  • 第一种方法:使用迭代器遍历集合

     Iterator it = set.iterator();
      while (it.hasNext()) {
     System.out.println(it.next());
     }
    
  • 第二种方法:for each 迭代
    把set集合中每个元素取出来赋值给obj,直到循环set所有值

     	for (Object obj : set) {
         	 	System.out.println(obj);
     	}
    

Tree Set

集合 (Set List Map)
二:TreeSet
集合中元素不重复
TreeSet自然排序 按值大小

  • 创建
    Set< Integer > set = new TreeSet< Integer >(); //泛型

  • 加入元素

     set.add(3);
     set.add(3);
     set.add(2);
     set.add(5);
     System.out.println(set); // TreeSet自然排序 按值大小
    
  • 删除元素

     set.remove(1);
    
  • 获取集合的元素个数

    System.out.println(set.size()); 
    
  • 判断某个元素是否在集合中 返回boolean类型

     System.out.println(set.contains(1));
    
  • 清空元素

     set.clear(); 
    
  • .输出

     System.out.println(set);
    
  • 遍历集合

     for (Integer i : set) {
     	System.out.println(i);
     	}
    

List集合

Array List

集合 (Set List Map)
(Array List 线程不安全 和 vector(不怎么用) 线程安全))

List 代表一个元素有序 且可重复的集合 集合中的每个元素都有其对 的顺序索引
允许使用重复的元素 可以通过索引来访问指定位置的集合元素
默认按元素的添加顺序设置元素的索引
list集合里添加了一些根据索引来操作集合元素的方法

  1. 创建List

    List<String> list = new ArrayList<String>();
    
  2. 加入元素

    list.add("b"); // 第一个索引下标为0
    list.add("a"); // 第二个索引下标为1
    list.add(" ");
    list.add("c");
    list.add("a");
    
  3. 输出List

    System.out.println(list)
    
  4. 通过索引访问指定位置的集合元素

    	System.out.println(list.get(0));
    
  5. 在指定索引下标的位置上插入元素

    list.add(1, "f");
    
  6. 根据指定的索引下标移除元素

    list.remove(2);
    
  7. 通过索引访问指定位置的集合元素

    System.out.println(list.get(0));
    
  8. 获取指定元素在集合中第一次出现的索引下标

       System.out.println(list.indexOf("a"));
    
  9. 获取指定元素在集合中最后出现的索引下标

    System.out.println(list.lastIndexOf("a"));
    
  10. 在集合的指定位置插入集合(类型要相同)

        list.addAll(2, l); 
    
  11. 根据指定的索引下表进行修改元素

    list.set(1, “bb”);

  12. 根据索引下标的起始位置截取一段元素形成一个新的集合

      List<String> sublist = list.subList(2, 5);   【2,5)
    

Map集合

  • Map 用于保存具有映射关系的数据,因此 Map 集合里保存着两组值,一组值用于保存 Map 里的 Key,另外一组用于保存 Map 里的 Value
  • Map 中的 key 和 value 都可以是任何引用类型的数据
  • Map 中的 Key 不允许重复,即同一个 Map 对象的任何两个 Key 通过 equals 方法比较中返回 false
  • Key 和 Value 之间存在单向一对一关系,即通过指定的 Key 总能找到唯一的,确定的 Value。

HashMap

HashMap 和 Hashtable 是 Map 接口的两个典型实现类
TreeMap

小结

Java 集合可分为 Set、List 和 Map 三种大体系

Set:无序、不可重复的集合

  • Hash Set 无重复元素 按Hashcode排序
  • Tree Set 无重复元素 按自然值排序
    List:有序,可重复的集合
  • ArrayList 可以有重复元素 按添加顺序排序设置索引 根据索引操作方法
    == Map:具有映射关系的集合==
相关标签: java