zoukankan      html  css  js  c++  java
  • Java之路---Day15(Collection类)

    2019-11-01-22:09:09

    目录

      1.Collection集合的概念

      2.Collection集合常用方法

      3.Iterator迭代器

      4.增强for

      5.Collection常用工具类


    Collection集合的概念

      ●集合:集合是java中提供的一 种容器,可以用来存储多个数据。

      集合和数组既然都是容器,它们有啥区别呢?

        ●数组的长度是固定的。集合的长度是可变的。

        ●数组中存储的是同-类型的元素.可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。

    Collection集合常用方法

     1 package demosummary.collection;
     2 /*
     3    public boolean add(E e) :把给定的对象添加到当前集合中。
     4   public void clear():清空集合中所有的元素。
     5   public boolean remove(e e);把给定的对象在当前集合中删除。
     6   public boolean contains(E e) ;判断当前集合中是否包含给定的对象。
     7   public boolean isEmpty(): 判断当前集合是否为空。
     8   public int size(): 返回集合中元素的个数。
     9   public object[] toArray(): 把集合中的元素,存储到数组中。
    10  */
    11 import java.util.ArrayList;
    12 import java.util.Collection;
    13 
    14 public class CollectionTest {
    15     public static void main(String[] args) {
    16 
    17         Collection<String> str = new ArrayList<>();
    18         /*
    19             public boolean add(E e) :把给定的对象添加到当前集合中
    20          */
    21         boolean b = str.add("张三");
    22 //        System.out.println(b);//true
    23         str.add("李四");
    24         str.add("王五");
    25         str.add("钱六");
    26         str.add("赵七");
    27 //        System.out.println(str);//[张三, 李四, 王五, 钱六, 赵七]
    28         /*
    29             public boolean remove(e e);把给定的对象在当前集合中删除
    30          */
    31 
    32 //        boolean b1 = str.remove("李四");
    33 //        System.out.println(b1);//true
    34 //        System.out.println(str);//[张三, 王五, 钱六, 赵七]
    35 
    36         /*
    37           public boolean contains(E e) ;判断当前集合中是否包含给定的对象
    38          */
    39         boolean b2 = str.contains("孙八");
    40         boolean b3 = str.contains("赵七");
    41         System.out.println(b2);//false
    42         System.out.println(b3);//true
    43 
    44         /*
    45           public boolean isEmpty(): 判断当前集合是否为空。
    46          */
    47 
    48         boolean b4 = str.isEmpty();
    49         System.out.println(b4);//false
    50 
    51         /*
    52           public int size(): 返回集合中元素的个数
    53          */
    54         int b5 = str.size();
    55         System.out.println(b5);//5
    56 
    57         /*
    58           public object[] toArray(): 把集合中的元素,存储到数组中
    59          */
    60         Object[] obj = str.toArray();
    61         System.out.println(obj[0]);//张三
    62         for (Object o : obj) {
    63             System.out.println(o);
    64         }
    65 
    66         /*
    67           public void clear():清空集合中所有的元素
    68          */
    69         str.clear();
    70         System.out.println(str);//[]
    71     }
    72 }

    Iterator迭代器

      Iterator接口

        在程序开发中.经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口java.util. Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器。

      迭代:

        即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续再判断,如果还有就再取出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

      Iterator接口的常用方法

        public E next() :返回迭代的下一个元素。
        public boolean hasNext() :如果仍有元素可以迭代,则返回true.

     1 package demosummary.collection;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collection;
     5 import java.util.Iterator;
     6 
     7 public class IteratorTest {
     8     public static void main(String[] args) {
     9         //创建一个集合
    10         Collection<String> obj = new ArrayList<>();
    11         //往集合中添加元素
    12         obj.add("德玛");
    13         obj.add("皇子");
    14         obj.add("德邦");
    15         obj.add("剑圣");
    16         //使用多态方式来创建实现类对象
    17         Iterator<String> iter = obj.iterator();
    18         //使用while循环来迭代集合
    19         while (iter.hasNext()){
    20             String next = iter.next();//使用迭代器原理
    21             System.out.println(next);
    22         }
    23     }
    24 }

    增强for  

      增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性

      collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for
      public interface Iterable<T>实现这个接口允许对象成为 "foreach"语句的目标。
      增强for循环:用来遍历集合和数组
      
    格式:

        for(集合/数组的数据类型变量名:集合名/数组名){
          sout(变量名);

        }

     1 package demosummary.collection;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collection;
     5 import java.util.Iterator;
     6 
     7 public class IteratorTest {
     8     public static void main(String[] args) {
     9         //创建一个集合
    10         Collection<String> obj = new ArrayList<>();
    11         //往集合中添加元素
    12         obj.add("德玛");
    13         obj.add("皇子");
    14         obj.add("德邦");
    15         obj.add("剑圣");
    16         //使用多态方式来创建实现类对象
    17         Iterator<String> iter = obj.iterator();
    18         //增强for
    19         for (String str : obj) {
    20             System.out.println(str);
    21         }
    22     }
    23 }

    Collection常用工具类

      java.utils.collections 是集合工具类,用来对集合进行操作。部分方法如下:
        public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
        public static vold shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。

     1 package demosummary.collection;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collection;
     5 import java.util.Collections;
     6 
     7 /*
     8       public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
     9     public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
    10     public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
    11     public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
    12  */
    13 public class CollectionTools {
    14     public static void main(String[] args) {
    15         ArrayList<String> obj = new ArrayList<>();
    16         //一开始学的添加元素的方法
    17 //        obj.add("德玛");
    18 //        obj.add("皇子");
    19 //        obj.add("德邦");
    20 //        obj.add("剑圣");
    21 
    22         /*
    23               public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
    24          */
    25 
    26         //用collection的方法来添加元素
    27         Collections.addAll(obj,"德玛","皇子","德邦","剑圣");
    28         System.out.println(obj);//[德玛, 皇子, 德邦, 剑圣]
    29 
    30         /*
    31             public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
    32          */
    33         Collections.shuffle(obj);
    34         System.out.println(obj);//[皇子, 德玛, 德邦, 剑圣]
    35 
    36     }
    37 }

        public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
        public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。

     1 package demosummary.collection;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collections;
     5 import java.util.Comparator;
     6 
     7 public class CollectionTools02 {
     8     public static void main(String[] args) {
     9         //创建一个集合对象
    10         ArrayList<Integer> obj = new ArrayList<>();
    11         //使用collection方法添加元素
    12         Collections.addAll(obj,4,3,2,1);
    13         //  public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
    14         //默认是升序
    15         Collections.sort(obj);
    16         System.out.println(obj);//[1, 2, 3, 4]
    17 
    18         /*
    19             public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
    20          */
    21         //创建一个集合对象
    22         ArrayList<Person> obj01 = new ArrayList<>();
    23         //往集合添加元素
    24         obj01.add(new Person("德玛",18));
    25         obj01.add(new Person("皇子",19));
    26         obj01.add(new Person("德邦",20));
    27         obj01.add(new Person("剑圣",18));
    28         //输出原来集合的排序
    29         System.out.println(obj01);
    30         //使用collection的方法按照指定规则排序
    31         Collections.sort(obj01, new Comparator<Person>() {
    32             @Override
    33             public int compare(Person o1, Person o2) {
    34                 //按照大小来排序
    35                 int result = o1.getAge()-o2.getAge();
    36                 if (result==0){
    37                     result=o1.getName().charAt(0)-o2.getName().charAt(0);
    38                 }
    39                 return result;
    40             }
    41         });
    42         System.out.println(obj01);
    43     }
    44 }
  • 相关阅读:
    Ubuntu oracle SDK替换OpenJDK
    用update-alternatives管理java版本
    安卓配置
    CS 159: Advanced Topics in Machine Learning: Structured Prediction
    ros bag 代码操作
    vim 方式快捷编辑代码
    文件权限
    操作系统连不上网
    github权限管理
    nmap基本命令使用
  • 原文地址:https://www.cnblogs.com/hpcz190911/p/11780327.html
Copyright © 2011-2022 走看看