Java中集合类定义主要是在java.util.*包下面,常用的主要有三大接口
1,java.util.Set接口:
Set是一个无序的集合,对集合成员的访问和操作是通过集中对象的引用进行的,所有Set集合中不能有重复对象,要查找某一元素,必须通过它的值来查找,Set是一个接口,我们只能使用它的实现子类,常用的有HashSet,接下来是Set集合的使用示例:
2,List是一个有序的集合,其对象以线性方式存储,可以根据List中对象放入时的次序来查找对象,元素数据可以重复,跟我们以前学的数组队列很像,示例代码如下
3,Map采用键(Key)--值(Value)对的方法,Key是不允许重复的,Value是允许重复的。Map中存放的对象是一对一对的,它的key可以看作Set集合,因此我们查找Map元素时,必须要通过迭代器来查找它的key值,它也是接口,只能由实现子类来实现,常用的有HashMap,HashTable,示例代码如下:
这里还要运用到一个Student类
Set和List集合是Collection的子类,但是Map不是它的子类······
1,java.util.Set接口:
Set是一个无序的集合,对集合成员的访问和操作是通过集中对象的引用进行的,所有Set集合中不能有重复对象,要查找某一元素,必须通过它的值来查找,Set是一个接口,我们只能使用它的实现子类,常用的有HashSet,接下来是Set集合的使用示例:
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class SetTest {
//程序入口
public static void main(String args[]){
Set<String> set=SetTest.createSet();
SetTest.printSet(set);
System.out.println();
set.add("小明");
System.out.println();
SetTest.printSet( set);
//删除的元素必须是值,而不能是位置
set.remove("小明");
System.out.println();
SetTest.printSet(set);
}
public static Set<String> createSet(){
//实例化set集合对象
Set<String> set=new HashSet<String>();
//循环给List集合添加数据
for(int i=0;i<10;i++){
set.add("学生"+i);
}
return set;
}
public static void printSet(Set<String> set){
//得到Set集合的迭代器对象
Iterator<String> iter=set.iterator();
//判断Set集合中是否还有元素可以进行迭代
while(iter.hasNext()){
//取出集合中的数据
String str=iter.next();
System.out.print(str+'\t');
}
}
}
2,List是一个有序的集合,其对象以线性方式存储,可以根据List中对象放入时的次序来查找对象,元素数据可以重复,跟我们以前学的数组队列很像,示例代码如下
import java.util.ArrayList;
import java.util.List;
public class ListTest {
//程序入口
public static void main(String args[]){
List<String> list=ListTest.createList();
list.add("小明");
//list.remove(2);
ListTest.printList(list);
}
//取得指定数量的的一个List集合
public static List<String> createList(){
//实例化集合对象
List<String> list=new ArrayList<String>();
//循环给List集合添加数据
for(int i=0;i<10;i++){
list.add("学生"+i);
}
return list;
}
//打出List中的内容
public static void printList(List<String> list){
for(int i=0;i<list.size();i++){
//得到集合中的数据
String str=list.get(i);
System.out.println(str);
}
}
}
3,Map采用键(Key)--值(Value)对的方法,Key是不允许重复的,Value是允许重复的。Map中存放的对象是一对一对的,它的key可以看作Set集合,因此我们查找Map元素时,必须要通过迭代器来查找它的key值,它也是接口,只能由实现子类来实现,常用的有HashMap,HashTable,示例代码如下:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
public static void main(String args[]){
Map<String,Student> map=MapTest.createMap();
MapTest.printMap(map);
System.out.println();
map.put("ID11",new Student("张三",4));
map.remove("ID2");
MapTest.printMap(map);
}
//创建Map集合的方法
public static Map<String,Student> createMap(){
//创建一个Map集合对象
Map<String,Student> map=new HashMap<String,Student>();
//循环给Map集合添加数据
for(int i=0;i<10;i++){
map.put("ID"+i, new Student("姓名"+i,i));
}
return map;
}
//打印Map集合的方法
public static void printMap(Map<String,Student> map){
//获取到key的Set集合对象
Set<String> set=map.keySet();
//得到Set集合的迭代器对象
Iterator<String> iter=set.iterator();
//判断Set集合是否可以进行迭代
while(iter.hasNext()){
//得到集合中的数据
String key=iter.next();
//取出迭代器元素对象
Student stu=map.get(key);
//根据Key来获取Map的Value
stu.study();
}
}
}
这里还要运用到一个Student类
public class Student {
public int no;
public String name;
public Student(String name,int no){
this.name=name;
this.no=no;
}
public void study(){
System.out.println(name+"正在学习"+"no"+no);
}
}
Set和List集合是Collection的子类,但是Map不是它的子类······