美文网首页
Java集合Colection

Java集合Colection

作者: 古拉啦啦 | 来源:发表于2019-08-16 21:54 被阅读0次

前言:在此之前,我们一谈到保存多个数值,首先能想到的就是数组,因为在我们之前学的所有类型中唯有数组可以存多个值,但是数组也有一些弊端,比如说,我们知道数组一旦定义就不可变,这里说的不可变是数组长度不可变,数组里面保存的内容是可变的,通过大量的编写代码。你就可以发现保存多个值,只有数组是不能满足我们的需求的。在我们还不能去确定要保存的值有多少个的时候,我们就需要一个可变的容器来保存我们需要保存的内容。那么这个容器就是今天我们学习的集合 ---- Collection.

1. Collection到底是什么呢?Collection 是一个抽象接口,里面定义了集合的相关操作。
2.collection主要方法:
  • boolean add(Object o)添加对象到集合
  • boolean add(int i, Object o)添加对象到集合索引值为i的位置
  • boolean remove(Object o)删除指定的对象
  • void clear()删除集合中所有元素
  • boolean contains(Object o)查找集合中是否有指定的对象
  • int size()返回当前集合中元素的数量
  • boolean isEmpty()判断集合是否为空
  • Iterator iterator()返回一个迭代器
  • boolean equals(Object o) 集合比较
  • boolean containsAll(Collection c)查找集合中是否有集合c中的元素
  • boolean addAll(Collection c)将集合c中所有的元素添加给该集合
  • void removeAll(Collection c)从集合中删除c集合中也有的元素
  • void retainAll(Collection c)从集合中删除集合c中不包含的元素

3.实际使用

下面就关于上面提到的集合方法进行实际的操作一下,简单感受一下:
首先定义一个集合t1,下面的所有的操作都用t1进行,定义如下

         Collection<String> t1 = new ArrayList();       

1,添加对象到集合:

   t1.add("Jack");     
   t1.add("Merry");       
  1. 删除⼀一个对象

     t1.remove("Jack");       
     System.out.println(t1);      
    
  2. 获取元素个数

     System.out.println(t1.size());    
    
  3. 判断是否包含⼀一个元素

         if (t1.contains("Merry")){        
     System.out.println("有merry");     
      }else{            
     System.out.println("没有merry");    
       }    
    

5.判断是否为空

    if(t1.isEmpty()){            
    System.out.println("是空的");      
    }    else{
     System.out.println("不是空的");      
     }
  1. 判断两个集合是否相同(⽐比较集合⾥里里⾯面的内容)

      Collection<String> t2 = new ArrayList<>();       
      t2.add("Merry");      
       t2.add("Jack");       
      t2.add("Rose");        
      t2.add("Tom");       
      if (t1.equals(t2)){          
       System.out.println("两个集合相同");        
     } else{            
     System.out.println("两个集合不不相同");    
     }       
    
  2. 清空

    t1.clear();        
    
  3. 将ArrayList转化为普通数组

方法一:

   Integer[] objects = new Integer[a4.size()];       
   t1.toArray(objects);       
   for (Integer i: objects){            
  System.out.println(i);     
     }        

方法二:

    Object[] objects1 = t1.toArray();       
     for (Object i: objects1){      
    System.out.println(i);    
}    
4. 集合的遍历

集合的遍历有三种方式,下面我们一起来学习吧~~~
1.使⽤用Iterator来遍历 , Iterator中有三个方法,hasNext next remove来帮助我们遍历集合,这虽然是我们第一次见,但是使用起来也比较容易,

hasNext 判断是否有元素
next 获取下⼀一个对象
remove 删除当前遍历过后的对象
遍历如下:

   Iterator iterator = t2.iterator();        
   while (iterator.hasNext()){          
   System.out.println(iterator.next());  
    }        
  1. 第二种方法,我们在数组中用到过的for-each 快速循环 来遍历集合,遍历如下:

     for (String obj: t2){          
     System.out.println(obj);     
      }      
    

3.第三种方式我们经常使用的 for- i

      for (int i = 0; i < t2.size(); i++){          
      System.out.println(((ArrayList<String>) t2).get(i));

collection主要子接口对象:List和Set,集合关系图如下,当然还有其它的,图中并不完整,例如,还有Vector,Stack。。。。


5.List(抽象接口,可重复有序)

list主要方法:

  • void add(int index,Object element)在指定位置上添加一个对象
  • boolean addAll(int index,Collection c)将集合c的元素添加到指定的位置
  • Object get(int index)返回List中指定位置的元素
  • int indexOf(Object o)返回第一个出现元素o的位置.
  • Object remove(int index)删除指定位置的元素
  • Object set(int index,Object element)用元素element取代位置index上的元素,返回被取代的元素
  • void sort()

ArrayList和LinkedArrayList的方法基本相同,所以这里就只例举ArrayList的常用方法:增删改查(包含)

  • 添加:
    add(int i ,string) 第i号添加,

add(String) 末尾追加
addAll(集合) 添加一个集合对象

  • 删除:
    remove(int i) /remove(values),
    removeAll() , 删除所有 clear()清空
    改;set(int i ,String) 将第i号元素该为String值
    (查)包含某个元素:contain
  • 遍历:iterator()/for-each/for-i
    访问:get
    长度:size
    是否为空:isEmpty
    两个集合是否相等:equals
    转换为数组 toArray
    两个集合的交集.retainAll
    其他:List有的方法它都有!

ArrayList 和LinkedArrayList 的区别:
ArrayList ——> 连续内存空间
LinkArrayList ——> 内部使用链表方式实现的 基本不连续

6.Lambda表达式

parameters) -> expression

(parameters) ->{ statements; }

1.lambda表达式的一般写法

  (Type1 param1, Type2 param2, ..., TypeN paramN) -> {
    statment1;
    statment2;
    //.............
  return statmentM;
    }

这是lambda表达式的完全式语法,后面几种语法是对它的简化。

2.只有一个参数写法

param1 -> {
statment1;
statment2;
//.............
return statmentM;
  }

当lambda表达式的参数个数只有一个,可以省略小括号

3.只有一条语句的写法

param1 -> statment

当lambda表达式只包含一条语句时,可以省略大括号、return和语句结尾的分号

今天就结束了,明天继续!

相关文章

  • Java集合Colection

    前言:在此之前,我们一谈到保存多个数值,首先能想到的就是数组,因为在我们之前学的所有类型中唯有数组可以存多个值,但...

  • Java学习Day08

    今日学习内容总结 Colection集合 Iterator迭代器 泛型 Collection集合 public b...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • 收藏夹

    博文 Java 集合:Java 集合学习指南 Java 集合:Java 集合源码剖析 HashMap:HashMa...

  • Java 集合框架_开篇

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • Java 集合框架_List

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • 9、java集合

    1、什么是java集合 java集合是用来存储多个数据引用的数据类型。 2、java集合分类 java集合类在ja...

  • 【集合框架】

    集合框架(怎么实现、适用场景) hash相关 Java集合框架 Java集合框架综述Java集合框架面试问题集锦 ...

  • Java基础——集合体系Map详解

    Java基础——集合体系Map详解 上文中我们了解了集合体系中的单列集合:Java基础——集合以及Java集合——...

  • Java基础

    Java集合框架 一、Java集合类简介: Java集合大致分为四种体系:Set:无序、不可重复的集合List:有...

网友评论

      本文标题:Java集合Colection

      本文链接:https://www.haomeiwen.com/subject/gdgqsctx.html