javaSE包含了一组由类和接口组成的java集合框架(Java Collections Framework简称JCE),其目的是处理对象集合的通用框架,减少程序员的代码量
被添加到集合中的对象称为一个元素
对象的存储方式有三种:set(集)、list(列表)、map(映射),这几个接口都继承自Collection接口,所以拥有Collection接口的所有方法,它们的详细情况如下:
List 接口
List 接口三个常用的接口的应用顺序:LinkedList > ArrayList > Vector(线程比较安全。但性能没有ArrayList好)
其特点:有重复的元素,有顺序、它的实现类通常支持null元素、通过索引访问list对象容器中的元素
其应用形式:
List list = new ArrayList();//List的标准定义
list.add(1);
list.add(1);
list.add(2);
list.add("3");
list.add('4');
list.add(new Object());
System.out.println("集合长度:"+list.size());
//遍历的过程,即得到元素
for(int i=0; i
System.out.println("第"+(i+1)+"个元素是:"+list.get(i));
}
Set接口
其特点:没有重复的元素,没有顺序
Set set = new HashSet();//Set的标准定义,HashSet()方法速度快但不排序,TreeSet()方法速度慢但可以排序
//添加元素
set.add(1);
set.add(1);
set.add('4');
Object obj = new Object();//有new就会创建一个新对象
set.add(obj);
set.add(obj);
System.out.println("SET集合的长度:"+set.size());
Iterator ite = set.iterator();//迭代器
//遍历的过程,即得到元素
while(ite.hasNext()){
System.out.println(ite.next());//得到元素
}
Set ks = map.keySet();
Iterator ite = ks.iterator();//迭代器
//遍历的过程,即得到元素
while(ite.hasNext()){
Object obj = ite.next();//得到返回的数据的元素
System.out.println(obj+"---"+map.get(obj));
}
Map接口
其特点:其属于是键(key)到值(value)的对应关系的集合,键(key)不可以重复,值(value)可以重复,
在HashMap中通过get()来获取value,通过put()来插入value
例如:
Map map = new HashMap();//Map的标准定义
//添加元素
map.put(1(键(key)), 1(值(value)));
map.put(1, 2);
map.put(2, 2);
map.put(3, "3");
map.put(4, '4');
map.put(5, new Object());
map.put("晓丽", '4');
//得到元素
System.out.println(map.size());//得到集合长度
System.out.println(map.get("晓丽"));//得到晓丽的数据
泛型
可以定义类、接口的的数据类型定义之后只能添加定义的数据类型的值,例如:
Listlist = new ArrayList();//泛型的标准定义
//添加定义后泛型后的元素
list.add(new NewStudent(8));
list.add(new NewStudent(10));
list.add(new NewStudent(12));
int s=list.size();//得到集合长度
//遍历的过程,即得到元素
for(int i = 0 ; ilist.size();i++){ System.out.println("第"+(i+1)+"个元素是:"+list.get(i));
}
Collections工具类和Arrays类
Collection工具类其中包含了很多操作,这些操作包括对元素进行排序、查询、修改等,这些方法都是静态的
Arrays类包含用来操作数组(比如排序和搜索)的各种方法
List li=new ArrayList();
li.add("a");
li.add("f");
li.add("b");
System.out.println(li);//得到值的集合[a, f, b]
SortedSet接口为set类型容器提供了排序功能
SortedMap接口为map类型容器提供了对键排序功能
Collections.sort(li);//排序操作
for(Object o:li){//foreach循环,相对于for循环来说比较简单
System.out.println(o);//得到排序后的结果a b f
}
排序: Comparable Comparator Collections.sort()