java入门总结part6

集合类

集合其实是就是通过接口来实现的,集合有各种各样的方法可以调用,需要自己去实践。

Collection集合

List与Set都是Collection的子类,Collection的简单使用会在Map里提到。

List接口

可以加入重复元素,接口必须通过子类实现,List常用子类:ArrayList,Vector;

首先List的ArrayList:像lists.add("A");lists.size();lists.isEmpty()等等的方法都是List特有的可以直接使用,具体可以到API中查看

package javalearn;
import java.util.ArrayList;//声明必须有
import java.util.List;//声明必须有
public class Learn {

    public static void main(String[] args) {
        List lists = null;//接口有一个泛型,可以自己指定
        lists= new ArrayList();//List是接口,所以必须通过子类来实现
        lists.add("A");
        lists.add("B");
        lists.add("C");
        for(int i=0;i             System.out.println(lists.get(i));
        }
        lists.remove(0);//移除集合的元素,是不是很容易。。。
        System.out.println("----删除之后-----");
        for(int i=0;i             System.out.println(lists.get(i));//得到集合的元素
        }
        System.out.println("集合是否为空:"+lists.isEmpty());
        System.out.println("集合中是否含有C字母:"+lists.indexOf("B"));//有返回具体位置,无返回-1;
    }
}

运行结果:

A
B
C
----删除之后-----
B
C
集合是否为空:false
集合中是否含有C字母:0

Vector与ArrayList用法相同,区别是Vector属于线程安全,ArrayList不属于,但是ArrayList处理速度更快。根据自身需求选一个用就行。

Set接口

不能加入重复元素,可以排序,Set常用子类:HashSet,TreeSet;。

HashSet:散列存放,但1.8版本的好像有所改变,经常是自动有序。

TreeSet:有序存放

实现代码:

package javalearn;
import java.util.HashSet;//声明必须有
import java.util.Set;//声明必须有
import java.util.TreeSet;//声明必须有
public class Learn {

    public static void main(String[] args) {
        Set s = null;
        Set t = null;
        s= new HashSet();//List是接口,所以必须通过子类来实现
        s.add("B");
        s.add("C");
        s.add("A");
        s.add("D");
        s.add("E");
        System.out.println(s);
        t= new TreeSet();//List是接口,所以必须通过子类来实现
        t.add("C");
        t.add("D");
        t.add("A");
        t.add("B");
        t.add("E");
        System.out.println(t);
    }
}

运行结果:

[A, B, C, D, E]
[A, B, C, D, E]

Iterator接口

这个接口一般用来迭代输出,作为迭代器,它的具体方法也有很多,具体自己下去API查看或自己去编译器试

package javalearn;
import java.util.ArrayList;//声明必须有
import java.util.List;//声明必须有
import java.util.Iterator;//声明必须有
public class Learn {

    public static void main(String[] args) {
        List lists = null;
        lists= new ArrayList();//List是接口,所以必须 用其子类实例化
        lists.add("A");
        lists.add("B");
        lists.add("C");
        lists.add("D");
        lists.add("E");
        lists.add("F");
        Iterator tor = lists.iterator();
        while(tor.hasNext()){//这个方法判断集合是否还剩元素,有返回true,否false
            String str = tor.next();//将元素依次赋值给str
            if(str.equals("B")){
                tor.remove();//记住迭代时一定不能直接用List使用remove方法,一定通过Itertor
            }
            else{
            System.out.println(str);
            }
            
        }
    }
}


运行结果:

ACDEF    //B已经被删掉

Map接口

常用子类:HashMap与HashTable

 大概格式:Map第一个泛型存放钥匙,第二个存放值

(钥匙,值)通过钥匙来获取值,具体代码:

package javalearn;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Learn {

    public static void main(String[] args) {
        Map map = new HashMap();//必须用子类实例化
        map.put("王明","13652846852");
        map.put("李红","13655222654");
        map.put("张三","13625456857");
            System.out.println(map.get("李红"));
        if(map.containsKey("张三")){
            System.out.println("张三这个钥匙存在");
        }else{
            System.out.println("张三这个钥匙不存在");
        }
        if(map.containsValue("13625456857")){
            System.out.println("13625456857这个值存在");
        }else{
            System.out.println("13625456857这个值不存在");
        }
        Set s= map.keySet();//将map中的钥匙转为一个集合
        Iterator i = s.iterator();//使用迭代器准备输出
        while(i.hasNext()){
            System.out.println(i.next());//输出全部钥匙
        }
        Collection v=  map.values();//将map中值转为一个集合
        Iterator j = v.iterator();//使用迭代器准备输出
        while(j.hasNext()){
            System.out.println(j.next());//输出全部值
        }
    }
}

运行结果

13655222654
张三这个钥匙存在
13625456857这个值存在
张三
李红
王明
13625456857
13655222654
13652846852

其实具体要转换成那类集合要看具体使用的方法返回什么类型,例如:map.keySet()这个方法返回是Set类型所以用Set集合,map.values()返回的是Collection类型,所以用Collection集合,具体返回哪个在调用时eclipse会有提示。

好了集合就先讲到这,下次本文件的操作。

你可能感兴趣的:(java入门总结part6)