有关Java集合类温习

核心接口

Collection、List、Set和Map
List和Set继承了Collection
Map独成一体

特征

Collection存放的对象允许重复,没有顺序
List提供了对象的有序存放,其中存放的对象也允许重复
Set相当于数学中集合的概念,存放的对象不允许重复也没有顺序

访问集合元素

所有的集合类都实现了Iterator(迭代器)接口

方法:

方法名称方法功能
hasNext()在迭代器当前位置,是否还有下一个元素
next()返回下个元素
remove()删除迭代器最后返回的那个元素

List(列表)——有序可重复

List的具体实现类主要有ArrayList和LinkedList(适合在链表中频繁进行插入和删除对象操作)

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

/**
 * Created by kevin_000 on 2016/3/15.
 */
public class TestList {

    public static void main(String[] args) {
        String str1="This";
        String str2="is";
        String str3="a";
        String str4=str3;
        List list=new ArrayList();
        list.add(str1);
        list.add(str2);
        list.add(str3);
        list.add(str4);
        for(Iterator it=list.iterator();it.hasNext();){
            String str= (String) it.next();
            System.out.print(str+" ");
        }
    }
}

存放情况

thisisa

Set(集合)——无序不重复

Set的主要实现类有HashSet和TreeSet

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * Created by kevin_000 on 2016/3/15.
 */
public class TestSet {
    public static void main(String[] args) {
        String str1 = "This";
        String str2 = "is";
        String str3 = "a";
        String str4 = str3;
        Set set = new HashSet();
        set.add(str1);
        set.add(str2);
        set.add(str3);
        set.add(str4);
        System.out.println(set.size());// 输出3个
        for (Iterator it=set.iterator();it.hasNext();){
            String str= (String) it.next();
            System.out.print(str);// 输出aThisis
        }
    }
}

存放情况

aThis

Map(映射)——键值对

Map提供了“键—值”的方式来存放对象,其中键值都可以是对象。
Key不能重复
Value可以重复,多个Key映射到同一个Value对象上

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

/**
 * Created by kevin_000 on 2016/3/15.
 */
public class TestMap {
    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("1","a");
        map.put("2","a");
        map.put("3","b");
        for(Iterator it=map.keySet().iterator();it.hasNext();){
            String key=(String) it.next();
            String value=(String)map.get(key);
            System.out.println(key+":"+value);
        }
    }
}

存放情况

keyvalue
1a
2a
3b

Enum(枚举)——常量集合

枚举中也可以定义方法

如:

/**
 * Created by kevin_000 on 2016/3/15.
 */
public class TestEnum {
    public enum Coin {
        penny(1), nickel(5), dime(10), quarter(25);
        private final int value;

        //构造方法,类似于类的定义
        Coin(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    public static void main(String[] args) {
        for (Coin coin : Coin.values()
                ) {
            System.out.println(coin.name() + ":" + coin.getValue());
        }
    }

}

泛型

简化代码,无需转换类型,相当于C++中的模板类

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

/**
 * Created by kevin_000 on 2016/3/15.
 */
public class TestTemplate {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();//定义了泛型List
        list.add("Kevin");
        list.add("Lee");
        for (Object o : list
                ) {
            System.out.println(o);
        }
        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);//不用再强制转换类型
            System.out.println(str);
        }
    }
}

增强for循环

用于数组或集合

for (type elementName : array | collection){

}

自动装箱和拆箱

本质是基本数据类型和包装类型的自动转换

包装类型基本数据类型
Booleanboolean
Characterchar
Bytebyte
Shortshort
Integerint

例子:

/**
 * Created by kevin_000 on 2016/3/16.
 */
public class TestBox {
    public static void main(String[] args) {
        Integer i = new Integer(2);
        Integer j = 10;// 自动装箱,基本数据类型-->包装类型
        int k = j + 1;// 自动拆箱,包装类型-->基本数据类型
        System.out.println(j);
        System.out.println(k);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值