zoukankan      html  css  js  c++  java
  • java集合(类似python的列表)

    一:学习方法

    我们在学习一个类的时候,如果他是期其他类的实现类,我们在学习的时候,先学习他的共同的继承类,学习他们共有的方法,在学习他实现类的特殊方法。由共性--->特殊。

    二:集合

    1、集合和数组区别:

     1 package test07;
     2 
     3 import java.util.ArrayList;
     4 import java.lang.Iterable;
     5 import java.util.Iterator;
     6 
     7 public class arr_test {
     8     public static void  main(String ...args){
     9         arr_Test();
    10         set_test();
    11     }
    12 
    13     public  static  void arr_Test(){ //数组
    14         int[] a={1,2,3,4,6};
    15         for (int i:a){
    16             System.out.print(i);
    17 
    18         }
    19     }
    20     public  static void set_test(){
    21         ArrayList<Integer> list_in=new ArrayList<Integer>();//集合  需要引用类型
    22         list_in.add(111);
    23         list_in.add(110);
    24         list_in.add(113);
    25         list_in.add(112);
    26         Iterator<Integer> list_it= list_in.iterator();
    27         while (list_it.hasNext()){
    28             System.out.print(list_it.next());
    29         }
    30     }
    31 
    32 }

     区别:

    1、数组的一旦定义之后,初始化之后长度不可以改变。

    2、集合内的元素为引用类型,基本类型需要使用其包装类进行进行操作,长度可变。

    集合是java提供一种容器,为了存储多个数据。

    2、ArrayList的继承关系:

    public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable  

    public interface List<E>
    extends Collection<E>
    public abstract class AbstractCollection<E>
    extends Object
    implements Collection<E> 

    ArrayList继承AbstractList抽象类  实现List接口,而List接口继承Collection超级接口。而类AbstractList 继承AbstractCollection抽象类。

    继承Collection类的所有子类对其方法都进行重写,而超级接口Collection 的子类有Set 和List

    public interface Set<E>
    extends Collection<E>

    public interface List<E>
    extends Collection<E>

    LIst常用的子类:

    ArrayList类、LinkedList类

    public class ArrayList<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, Serializable

    public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, Serializable
    Set接口常用的子类:
    HashSet类、LinkedHashSet类
    public class LinkedHashSet<E>
    extends HashSet<E>
    implements Set<E>, Cloneable, Serializable
    public class HashSet<E>
    extends AbstractSet<E>
    implements Set<E>, Cloneable, Serializable
    关系图:
       


    因为collection是所有这几类的超级接口,所以collection类的所有接口子类都需要重写。所以我们首先需要先学习collection类的所有接口。
    Collection常用的方法如下:
     1 package test07;
     2 
     3 import org.omg.Messaging.SYNC_WITH_TRANSPORT;
     4 
     5 import javax.swing.text.html.HTMLDocument;
     6 import java.util.ArrayList;
     7 import java.util.Collection;
     8 import java.util.Iterator;
     9 
    10 public class Collect_demo {
    11     public static void  main(String...args){
    12         add_demo();
    13         itor_demo();
    14         remov_Demo();
    15     }
    16     public static  void add_demo(){
    17         /*
    18          *给集合添加元素。
    19          * bool     add(E e)
    20          *  返回值为布尔类型,添加成功为true反之为false;
    21          *  int  size()  返回集合的长度。
    22          *  bool contains(object) 是否包含元素。返回布尔值.
    23          * void clear()  移除collection所有元素.无返回值.
    24          */
    25         Collection<Integer> co_in=new ArrayList<>();
    26         co_in.add(1);
    27         co_in.add(2);
    28         boolean ret=co_in.add(3);
    29         int set_len=co_in.size();
    30         System.out.print(set_len);
    31         System.out.print(co_in);
    32         System.out.print(ret);
    33         System.out.print("+++++++++");
    34         System.out.print(co_in.contains(1));
    35         System.out.print("+++++++++");
    36         co_in.clear();
    37         System.out.print(co_in);
    38 
    39     }
    40     public static  void itor_demo(){
    41         /*
    42         因为collection 继承Iterator 其中
    43         Iterator<E>  iterator()返回值为iterator迭代器对象,所以根据这个对象 进行循环。
    44         其中  bool  hasNext()返回布尔值,表示当前的迭代器是否有下个元素。
    45         e    next()返回下个元素。
    46         object[] toArray(collection)
    47          */
    48         Collection<Integer> it=new ArrayList<>();
    49         it.add(1);
    50         it.add(2);
    51         it.add(3);
    52         it.add(4);
    53         Iterator<Integer> it_or=it.iterator();
    54         while (it_or.hasNext()){
    55             System.out.print(it_or.next()+"
    ");
    56         }
    57         Integer[] it_a=new Integer[it.size()];
    58         it.toArray(it_a);
    59         System.out.print(it_a.length);
    60     }
    61     public static  void  remov_Demo(){
    62         Collection<Integer> re_cl=new ArrayList<>();
    63         /*
    64             bool    remove(object)
    65             移除指定对象。返回值为布尔值
    66             Collection<E>  removeall(Collection<?> e)
    67             移除传入Collection对象的内的值,如果传入的对象内值在被移除的集合,那么被移除,否则不移除。也可以出入原集合。
    68             bool isEmpyt()返回布尔值,判断集合是否为空.
    69          */
    70         re_cl.add(11);
    71         re_cl.add(12);
    72         re_cl.add(13);
    73         re_cl.add(14);
    74         System.out.print(re_cl);
    75         boolean ret=re_cl.remove(11);
    76         Collection<Integer> a=new ArrayList<Integer>();
    77         a.add(10);
    78         a.add(18);
    79         boolean ret_1=re_cl.removeAll(a);
    80         boolean ret_2=re_cl.removeAll(re_cl);
    81         System.out.print(re_cl);
    82         System.out.print(ret);
    83         System.out.print("------------");
    84         System.out.print(re_cl);
    85         if(re_cl.isEmpty()){
    86             System.out.print("tis set is empty!");
    87         }
    88     }
    89 //    public static void
    90 }

    java获取长度三种方式:

     1、字符串 length()

    2、数组  length

    3、集合  size()

     1 package test07;
     2 
     3 import java.util.ArrayList;
     4 
     5 public class test {
     6     public static void main(String...args){
     7         func_1();
     8     }
     9     public static void func_1(){
    10         String  a="123";
    11         System.out.print(a.length());
    12         int[] a_ar=new int[3];
    13         a_ar[0]=2;
    14         a_ar[1]=2;
    15         a_ar[2]=2;
    16         System.out.print(a_ar.length);
    17         ArrayList<Integer>  test=new ArrayList<>();
    18         test.add(1);
    19         test.add(1);
    20         test.add(1);
    21         test.add(1);
    22         System.out.print(test.size());
    23     }
    24 }



  • 相关阅读:
    dp P1103 书本整理 洛谷
    dp 洛谷P1977 出租车拼车 线性dp
    Layui 在新标签中打开页面 / 模拟点击菜单
    布局 基础知识
    SpreadJS 生成报表
    ABP abp zreo 老版本 支持dotnet framework 4.0
    IIS 加载字体
    IIS 登录失败 该登陆名来自不受信任的域,不能与windows身份认证一起使用
    C# WebForm 打开默认页
    IIS 报错 Cannot open database "test4" requested by the login. The login failed. Login failed for user 'IIS APPPOOL est1'.
  • 原文地址:https://www.cnblogs.com/evilliu/p/7832370.html
Copyright © 2011-2022 走看看