疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java中集合的总结笔记


 

     集合是一个容器,用一个对象可处理多个对象。

  java中常用的集合在系统中定义了三大接口

  java.util.Set接口及其子类,Set提供的是一个无序的集合

  java.util.List接口及其子类,List提供的是一个有序集合

  java.util.Map接口及其子类,Map提供了一个映射关系的集合数据结构

  对集合需要掌握的:

  怎样得到所选中的对象

  怎样增加集合中的元素

  怎样删除集合中的元素

  怎样循环遍历集合中的元素

  三种集合:

  Set:

  Set是无序集合,其中不允许存放相同元素。

  实现类有HashSet

  Set集合的方法:

  boolean add(E ,o)向集合中加入一个对象,如果集合中有这个对象,返回false

  boolean addAll(Collection,c)向集合中加入另一个集合

  boolean contains(Object o)判断集合是否存在某个对象

  boolean containsAll(Collection,c)判断集合中是否含有另一个集合

  Iterator得到这个集合的迭代器

  boolean remove(Object o)从集合中移除一个对象

  int size()返回集合内元素的个数

  Object[] toArray()将集合转变成一个数组对象

  对Set集合进行增,删,改,查的操作

  代码:

  public class Mysettest {

  public static void main(String []args){

  Mysettest mt=new Mysettest();

  //创建含有10个学生对象的集合

  Set set=mt.userSet(10);

  mt.print(set);

  //查找学分为15的学生的信息

  mt.reacher(set, 15);

  //删除学分小于10的学生的信息

  Set sSet=mt.Delete(set, 10);

  mt.print(sSet);

  }

  //创建学生集合的方法

  public Set userSet(int size){

  java.util.Random rd=new java.util.Random();

  //创建一个集合

  Set set=new HashSet();

  for(int i=0;i

  Student st=new Student("用户:"+((char)(65+i)),rd.nextInt(20));

  //将学生对象加到set集合中

  set.add(st);

  }

  return set;

  }

  //查找学生的方法

  public void reacher(Set set,int scroe){

  System.out.println("学分为"+scroe+"的学生=============================>");

  //给set集合加迭代器

  java.util.Iterator it=set.iterator();

  while(it.hasNext()){

  Student st=it.next();

  if(st.getscore()==scroe){

  st.showInfo();

  }

  }

  }

  //删除学生信息的方法

  public Set Delete(Set set ,int scroe){

  System.out.println("学分小于"+scroe+"的学生=============================>");

  //创建一个用来存放要删除学生的信息的集合

  Set s=new HashSet();

  //给set集合加迭代器

  java.util.Iterator it=set.iterator();

  while(it.hasNext()){

  Student st=it.next();

  if(st.getscore()

  s.add(st);

  }

  }

  //将set集合中的s集合移除

  set.removeAll(s);

  return set;

  }

  //打印集合中元素的方法

  public void print(Set set){

  //给set集合加迭代器

  java.util.Iterator it=set.iterator();

  while(it.hasNext()){

  Student st=it.next();

  st.showInfo();

  }

  }

  }

  在Set中加入两个相同的元素会被覆盖,两个元素不可以同时存在在Set集合中。

  List:

  List是有序集合,其中允许存放相同元素。

  实现类有ArrayList,LinkedList

  List集合的方法:

  boolean add(E ,o)向集合中加入一个对象,如果集合中有这个对象,返回false

  boolean addAll(Collection,c)向集合中加入另一个集合

  boolean contains(Object o)判断集合是否存在某个对象

  boolean containsAll(Collection,c)判断集合中是否含有另一个集合

  Iterator得到这个集合的迭代器

  boolean remove(Object o)从集合中移除一个对象

  int size()返回集合内元素的个数

  Object[] toArray()将集合转变成一个数组对象

  对List集合进行增,删,改,查的操作

  代码:

  public class Mylisttest {

  public static void main(String []args){

  Mylisttest ml=new Mylisttest();

  //创建学生对象

  List list=ml.create(10);

  ml.print(list);

  //查找学分为15的学生的信息

  ml.reacher(list, 15);

  //删除学分小于10的学生的信息

  Listl=ml.Delete(list, 10);

  ml.print(l);

  }

  //创建学生集合

  public List create(int size){

  java.util.Random rd=new java.util.Random();

  //构造学生集合

  List list=new ArrayList();

  for(int i=0;i

  //创建学生对象

  Student st=new Student("用户:"+((char)(65+i)),rd.nextInt(20));

  //将学生对象加到list集合中

  list.add(st);

  }

  return list;

  }

  //查找学生信息的方法

  public void reacher(List list,int score){

  System.out.println("学分为"+score+"的学生======================>");

  for(int i=0;i

  Student st=list.get(i);

  if(st.getscore()==score){

  st.showInfo();

  }

  }

  }

  //删除学生信息的方法

  public List Delete(List list,int score){

  System.out.println("删除后的集合元素======================>");

  for(int i=0;i

  Student st=list.get(i);

  if(st.getscore()

  list.remove(st);

  }

  }

  return list;

  }

  //打印学生信息

  public void print(List list){

  for(int i=0;i

  Student st=list.get(i);

  st.showInfo();

  }

  }

  }

  为什么加迭代器:由于Set集合是无序的,所以不能根据索引来遍历整个数组,所以要加迭代器对

  集合进行遍历。

  在List中加入两个相同的元素不会被覆盖,两个元素可以同时存在在List集合中。

  Map:中存入的对象是一对一对的,即每个对象和它的一个名字关联在一起。

  Map中存放的是两种对象,一种是key(键),一种是value(值),它们是一一对应的

  Map中的key不可以有相同的值,而value可以有相同的值

  Map中的方法:

  put(K key,V value)向Map集合中加入一对关联的对象

  void putAll(Map t)将另一个Map中的键和值加入到Map中

  boolean containsKey(Object key)判断Map的Key中是否存在某种指定的Key对象

  boolean containsKey(Object value)判断Map的Key中是否存在某种指定的value对象

  V remove(Object key)从Map中移除key对应的value

  int size()得到Map中的对象数

  Set keySet()将Map中所有的key对象放入一个Set返回

  Collection values()将Map中所有的value对象放入一个Collection返回

  对Map集合进行增,删,改,查的操作

  代码:

  public class MyMapTest {

  public static void main(String []args){

  MyMapTest mt=new MyMapTest();

  Mapmap=mt.create(10);

  mt.print(map);

  //查找

  mt.reacher(map, 15);

  //删除

  mt.Delete(map, 10);

  }

  //创建学生集合

  public Map create(int size){

  java.util.Random rd=new java.util.Random();

  //创建map集合

  Map map=new HashMap();

  for(int i=0;i

  Student st=new Student("用户:"+((char)(65+i)),rd.nextInt(20));

  map.put(""+i,st);

  }

  return map;

  }

  //查找学生信息

  public void reacher(Map map,int score){

  System.out.println("学分为"+score+"的学生======================>");

  //得到Map中key的集合

  Set set=map.keySet();

  //给set加迭代器

  java.util.Iterator it=set.iterator();

  while(it.hasNext()){

  String key=it.next();

  Student st=map.get(key);

  if(st.getscore()==score){

  st.showInfo();

  }

  }

  }

  //删除学生信息

  public void Delete(Map map,int score){

  System.out.println("删除后的集合元素======================>");

  //得到Map中key的集合

  Set set=map.keySet();

  //创建另一个集合存放要删除学生信息

  Set s=new HashSet();

  //给set加迭代器

  java.util.Iterator it=set.iterator();

  while(it.hasNext()){

  String key=it.next();

  Student st=map.get(key);

  if(st.getscore()

  s.add(key);

  }

  }

  set.removeAll(s);

  //给set加迭代器

  java.util.Iterator iter=set.iterator();

  while(iter.hasNext()){

  String key=iter.next();

  Student st=map.get(key);

  st.showInfo();

  }

  }

  //打印学生信息

  public void print (Map map){

  //得到Map中key的集合

  Set set=map.keySet();

  //给set加迭代器

  java.util.Iterator it=set.iterator();

  while(it.hasNext()){

  String key=it.next();

  Student st=map.get(key);

  st.showInfo();

  }

  }

  }