【Java】掌握Java 集合框架的简单使用

什么是集合框架:

类似于C语言中的数据结构,Java中的集合框架也是对数据进行集合存储的的一种方法,并是为了方便开发者去使用,Java集合框架将常见的数据结构规范化方便开发者使用。

【Java】掌握Java 集合框架的简单使用_第1张图片
这是一个较为庞大的体系,其中我们常用的是ArrayListLinkedListHashSetLinkedHashSetHashMapLinkedHashMap 着几种类型集合类

而在以上一种集合类的上方有几种集合接口首先是最顶层的CollectionMap,然后是继承于CollectionSetList以及其他不常用的接口等等,他们的作用是方便开发者创造出属于自己的存储容器实现计划的目标.

ArrayList的使用

可以理解为数据结构中的顺序表

  • 如何创建一个ArrayList

    ArrayList<String> list = new ArrayList<>();
    

    首先是新建一个ArrayList
    中间涉及到一个泛型的概念先解释一下:
    就是在<>中的内容, 我们可以先看ArrayList的原型:

    public class ArrayList<E> extends AbstractList<E>
    

    这个是一个形参,我更加愿意理解为一个占位符,想象一下在ArrayList类中的集合元素内容不单单是一种有可能是:String,Object,你自己定义的类等等,所以不能把类型定死,例如在ArrayList类中的:

     public boolean add(E e) {
        modCount++;
        add(e, elementData, size);
        return true;
    }
    

    函数的形参是E e而这个E就是我们在实例化类的时候在<>的内容,比如当前我们的E就是String类型.

    关于泛型详细可以看这里

    在实例化一个ArrayList实例以后就是向其中添加元素:

    list.add("hi");
    list.add("you");
    

    那么一个装满东西的ArrayList就做好了;

  • 如何遍历ArrayList

    ArrayList的遍历与数组类似,但是假如了迭代器的概念

    public class Test{
     public static void main(String[] args) {
         List<String> list=new ArrayList<String>();
         list.add("Hello");
         list.add("World");
         list.add("HAHAHAHA");
         //第一种遍历方法使用 For-Each 遍历 List
         for (String str : list) {            //也可以改写 for(int i=0;i
            System.out.println(str);
         }
     
         //第二种遍历,把链表变为数组相关的内容进行遍历
         String[] strArray=new String[list.size()];
         list.toArray(strArray);
         for(int i=0;i<strArray.length;i++) //这里也可以改写为  for(String str:strArray) 这种形式
         {
            System.out.println(strArray[i]);
         }
         
        //第三种遍历 使用迭代器进行相关遍历
         
         Iterator<String> ite=list.iterator();
         while(ite.hasNext())//判断下一个元素之后有值
         {
             System.out.println(ite.next());
         }
     }
    }
    
    

    使用迭代器更加保险, 不用担心越界问题的发生;

Map的使用

Map是一种键-值对的形式类似于python中的字典

  • 如何创建一个Map对象

    Map<String, String> map = new HashMap<String, String>();
    

    ArrayList类似只是有两个泛型的参数分别对应标签元素

    添加内容:

      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");
    

    以上就是添加标签和对象内容到Map中

  • Map如何遍历

    public class Test{
         public static void main(String[] args) {
          Map<String, String> map = new HashMap<String, String>();
          map.put("1", "value1");
          map.put("2", "value2");
          map.put("3", "value3");
          
          //第一种:普遍使用,二次取值
          System.out.println("通过Map.keySet遍历key和value:");
          for (String key : map.keySet()) {
           System.out.println("key= "+ key + " and value= " + map.get(key));
          }
          
          //第二种
          System.out.println("通过Map.entrySet使用iterator遍历key和value:");
          Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
          while (it.hasNext()) {
           Map.Entry<String, String> entry = it.next();
           System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
          }
          
          //第三种:推荐,尤其是容量大时
          System.out.println("通过Map.entrySet遍历key和value");
          for (Map.Entry<String, String> entry : map.entrySet()) {
           System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
          }
        
          //第四种
          System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
          for (String v : map.values()) {
           System.out.println("value= " + v);
          }
         }
    }
    

    Map.entrySet:该方法返回值就是这个map中各个键值对映射关系的集合。

以上便是常用的集合框架内容,如有错误欢迎指正

你可能感兴趣的:(Java,学习笔记)