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()+"\n");
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 }

 

 

 




 

posted @ 2017-11-14 14:25  evil_liu  阅读(1417)  评论(0编辑  收藏  举报