集合框架
List/Set/Map
List/Set 实现Collection接口(不是connection,别犯这种低级错误)
1.List,队列,不确定数组长度时使用(其他特点:数据有序,可根据下标取,数据可重)
1.1 List为接口泛型接口
1.2 ArrayList为其最常用的实现类(此外还有LinkedList等)List list =new ArrayList()
此类大致上等同于Vector 类(向量类),除了此类是不同步的,(不支持并发线程修改?)
1.3 增删查改
add(),为list添加数据(object型,即可以添加任何对象,可在同一个List中加几种数据类型(包括类类型))
也可以往中间某个位置加(index,alue),(后面的顺移)
ArrayList<String> 变成只能加String型
get(0)获取list中数据 eg:System.out.println(list.get(i));
remove(0)删除指定位置的数据
set(下标值,值) 改,覆盖
.size()获取长度
2. Set 表 不能包含重复元素(自动去重),无序
2.1 Set<String> set=new HashSet<String>();
2.2 增 add(),
有bool型返回值(已有,false,添加不成功)
删 remove(object)
2.3 取 除 改 用迭代器 iterator(因为无序)
iterator<String>it=Set<String>.iterator
取
while(it.hasNext())
{System.out.println(it.next());}
删 remove()无参数(必须在next方法之后,即必须确定有元素)很少用
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
3.Map 也是泛型接口存储方式:键值对,一个键对应一个值,键不能重复(如果键值重复,会用后值覆盖前值),键值都可以为空
键值都不可以为基本数据类型(八大),String不是基本数据类型,
但可以用八大对应的应用类型(eg:bool->boolean)
3.1实例化类HashMap
实例化时需要指定两个类型,键&值
Map<String,String> map=new HashMAp<String,String>
加 put(key,value)
查 :知道键值,可以不用迭代器,直接取值
Object value1=map.get(键);
否则先拿到键的集合,再拿到该集合的迭代器,再取值
Set<String>mapkey=map.keySet();
Iterator it=mapkey.iterator();
while(it.hasNext)
{ String key=it.next();
String value=map.get(key);
// 输出
}