05-Java 集合类详解

(1)Java集合-Collection

  A、集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充

  B、集合特点:性能高,容易扩展和修改

  C、Collection的常用子类:List、Set、Queue

(2)Java集合-List

  A、List接口可以存放任意的数据,而且在List接口中内容是可以重复的

  B、List接口常用子类:ArrayList、 Vector

  C、常用操作:

    判断集合是否为空:boolean isEmpty()

    查找指定的对象是否存在:int indexOf(Object o)

import java.util.ArrayList;
import java.util.List;

public class ListDemo01 {

    public static void main(String[] args) {
        List<String> lists=null;
        lists=new ArrayList<String>(); //List常用接口子类一arrayList
        lists.add("A");
        lists.add("B");
        lists.add("A");//内容可重复
        for (int i = 0; i < lists.size(); i++) {
            System.out.println(lists.get(i));
        }
        lists.remove(0);
        System.out.println("删除之后-------");
        for (int i = 0; i < lists.size(); i++) {
            System.out.println(lists.get(i));}
System.out.println("集合是否为空:"+lists.isEmpty());
System.out.println("B是否存在:"+lists.indexOf("B"));

  结果:

  A

  B

  A

  删除之后-------

  B

  A

  集合是否为空:false

  B是否存在:0  //当前集合的索引,因为刚刚A被删除了,所以此时B位于集合第一个位置,所以为0.若不存在,则-1。

ArrayList、 Vector功能差不多,下图为二者比较:

 

(3)Java集合-Set

A、Set 接口中不能加入重复元素(List可重复),但是可以排序。

B、Set 接口常用子类:

   散列存放:Hashset

   有序存放:TreeSet

public static void main(String[] args) {
        Set<String> s=null;
        //s=new TreeSet<String>();//(逻辑)有序
        s=new HashSet<String>();//无序
        s.add("A");
        s.add("B");
        s.add("C");
        System.out.println(s);

(4)Java集合-Iterator

A、集合输出的标准操作:标准做法,使用Iterator 接口。

B、操作原理:Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取走。

  

public static void main(String[] args) {
        List< String> lists=new ArrayList<>();
        lists.add("A");        
        lists.add("B");        
        lists.add("C");
        System.out.println(lists);
        Iterator<String> iter=lists.iterator();
        while(iter.hasNext()){
            String str =iter.next();
            if ("A".equals(str)) {
                iter.remove();                
            }else System.out.println(str);

  结果:[A, B, C]

  B

  C

(5)Java集合-Map(为接口存放时,key 都是唯一的。)

  A、保存形式:key--à value 的方式保存。例:小雪:15362489521

  B、常用子类:HashMap:无序存放,key不允许重复

             Hashtable:无序存放,key不允许重复

public class MapDemo01 {

    public static void main(String[] args) {
        Map<String, String>  map=new HashMap<String, String>();
        map.put("key1", "jikexueyuan");
        map.put("key2", "www");
        map.put("key3", "com");
        map.put("key4", "eoe");
        map.put("key5", "hello");
        String str =map.get("key1");
        System.out.println(str);
        //判断键和值是否存在
        if (map.containsKey("key")) {
            System.out.println("key存在");        
        }else {System.out.println("key不存在");            }
        if (map.containsValue("jikexueyuan")) {
            System.out.println("value存在");
        }else{System.out.println("value不存在");    }
        //输出所有值或键
        Set<String> s=map.keySet();
        Iterator<String> i=s.iterator();
        while (i.hasNext()) {
            System.out.println(i.next());
        }
        
        Collection<String > c=map.values();
        Iterator<String>  i1=c.iterator();
        while (i1.hasNext()) {
            System.out.println(i1.next());    

  结果:

  jikexueyuan

   key不存在

  value存在

  key1

  key2

  key5

  key3

  key4

  jikexueyuan

  www

  hello

  com

  eoe

原文地址:https://www.cnblogs.com/shenxiaolin/p/6017541.html