java集合篇总结

来源:互联网 发布:淘宝关键词采集 编辑:程序博客网 时间:2024/06/05 11:18


    相信初学小伙伴们对于java的集合学的也是一脸懵逼,下面我就为大家总结一下三大集合常用方法及遍历集合的方法


Collection接口

=====================================================================
 一、List接口常用的三种实现类:    

          ArrayList 动态数组形式实现集合

          Vector
          Linklist  链表形式实现数组
          例子: List  list = new Array();

  常用方法:
        void add(int index,Object o)在指定位置插入元素
         void clear() 删除所有元素
         boolean contains(Object o)查看列表中是否有指定的元素
         Object get(index)获得指定位置的元素
         int indexOf(Object o)获得元素的索引值没有返回-1
         boolean isEmpty 如果列表中不包含元素返回true
         Iteractor()返回列表元素的迭代对象
         remove(int index)删除指定位置的元素
         set(int index,Object o)替换指定位置的元素
         size() 返回列表元素数的大小

        subList(int startpos , int stoppos)返回[startpos,stoppos]中间的元素

 List的遍历方法:增强型for循环,迭代器(Iterator)      

package test;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class LIstTest {

public static void main(String[] args) {

     List<String> list = new ArrayList<String>();

    //添加元素的方法

    list.add("aa");

    list.add("bb");

    list.add("cc");

    list.add(3, "dd");

     //查询类的方法

    System.out.println("contains方法"+list.contains("aa"));

    System.out.println("bb元素的索引值"+list.indexOf("bb"));

    System.out.println("获得2对应的值"+list.get(2));

    System.out.println("判断集合是否为空"+list.isEmpty());

    System.out.println("集合的大小"+list.size());

     //修改集合元素的方法

     System.out.println("修改2对应的值"+list.set(2,"ee"));

      //删除集合元素的方法

      System.out.println("删除2对应的元素"+list.remove(2));

      //遍历List集合的方法

      //方式一:for循环

      for(String str : list)

       {

        System.out.println("第"+list.indexOf(str)+"个元素是"+str);

       }

     //方式二:迭代器

      Iterator<String> iterator = list.iterator();

      while(iterator.hasNext())

      {   

       String temp = iterator.next();

       System.out.println("第"+list.indexOf(temp)+"个元素是"+temp);

      }

      //清除所有元素

       list.clear();

      System.out.println("判断集合是否为空"+list.isEmpty());

  }  

}

==============================================================

Set接口的三种实现类

  HashSet:不包含重复元素的集合,无序,可以放入null,只能放一个;
  TreeSet:二叉树形式实现集合
  例子:Set set = new HashSet();
            Set set = new TreeSet();

常用方法:
 void add(Object o);添加元素   
 void clear()移除set中的所有元素
  boolean contains(object o)查看集合中是否村子该元
  iterator()获得集合迭代对象
  int size()获得集合元素个数

 Set遍历方法:
   迭代器(Iterator)

    package test;
     import java.util.HashSet;
     import java.util.Iterator;
     import java.util.Set;
     public class SetTest {
     public static void main(String[] args) {
 Set<String> set = new HashSet<String>();
          //添加类方法
 set.add("aa");
 set.add("bb");
 set.add("cc");
 //查询类方法
 System.out.println("查看是否存在bb元素"+set.contains("bb"));
 System.out.println("查看集合大小"+set.size());
 System.out.println("判断集合是否为空"+set.isEmpty());
 //因为Set集合是无序的所以无法通过类似索引的方法修改
 //删除类方法
 System.out.println("删除cc元素"+set.remove("cc"));
 //Set集合的遍历方法
          Iterator<String> iterator = set.iterator();
  while(iterator.hasNext())
  {
 System.out.println("set集合的元素"+iterator.next());
  }
  //清除所有元素
  set.clear();
  System.out.println("查看集合是否为空"+set.isEmpty());
}
}  

 set和list的区别

 存储:set存储无序,不重复的元素,
           list存储重复,有序的元素;
 效率:list的查询效率更高,插入时会改变其他元素的位置,插入效率低,set查询效率低,插入效              率高;


迭代器(Iterator接口):
  概述:由于集合内元素类型的不同,很难遍历,所以集合内每个元素都有一个迭代器对象,通过获           得迭代器对象,可以轻松地遍历集合,并且对元素进行操作;增强型for循环的底层也是迭代               器实现
      例:List list = new ArratList();
            Iterator iterator = list.iterator();
常用方法:
 boolean  hasNext() 遍历时判断是否有下一个元素
                     next() 返回迭代的下一个元素
 void  remove() 删除迭代器指向的集合元素


=============================================================================================================
Map 以键值对方式存储元素的集合
   
   Map map = new HashMap();
   Map map = new Hashtable();   
   HashMap 允许使用NULL值和NULL键
   Hashtable 任何非null的对象都可以用做键或元素值
   TreeMap      
  常用方法:
     void clear()从此映射中移除所有映射关系   
     boolean containsKey(object key)查看是否存在该键
    boolean containsValue(Object value) 查看是否存在该值
    Set entrySet() 将Map集合中key-value作为元素存于set集合中,元素类型为(<Map.Entry>)
    Set keySet()将Map所有的key作为set集合      返回 
    get(object key)获得key键对应的值
    put(object key,object value)存储该映   射关系到集合中
    remove (object key)删除对应键值的元素



HashMap和Hashtable的区别

      

取舍主要看是否存储对象存在null值,是否需要线程安全两个方面
   Map集合的遍历方法
   方式一、效率最高
  Set set = map.entrySet();
  Iterator iterator = set.iterator();
  while(iterator.hasNext())
  {
     Map.Entry entry = (Map.Entry)                        
           iterator.next();
     Object key = entry.getKey();
     Object value = entry.getValue();
   }
  方式二、效率较低
   Set set = map.ketSet();
  Iterator iterator = set.iterator();
   while(iterator.hasNext())
    {
    Object key = iterator.next();
    Object value = map.get(key);

    } 

 

package test;

 

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, String> map = new HashMap<String, String>();

//添加类方法

map.put("A", "aa");

map.put("B", "bb");

map.put("C", "cc");

//查询类方法

System.out.println("获得B键对应的元素"+map.get("B"));

System.out.println("查看是否存在C键"+map.containsKey("C"));

System.out.println("查看是否存在cc元素"+map.containsValue("cc"));

System.out.println("c查看集合的长度"+map.size());

System.out.println("查看集合是否为空"+map.isEmpty());

//修改类方法

System.out.println(""+map.put("A","aaaa"));

//删除类方法

System.out.println("删除A及A对应的元素"+map.remove("A"));

//其他方法

//Set<Map.Entry<String,String>> setEntry = map.entrySet();

//Set<String>  setKey = map.keySet();

//遍历Map集合的方式

//方式一、通过entry()方法

Set<Map.Entry<String, String>> entry = map.entrySet();

Iterator<Map.Entry<String, String>> iterator =entry.iterator();

while(iterator.hasNext())

{   

Map.Entry<String, String> m = iterator.next();

String strKey = m.getKey();

String strValue = m.getValue();

System.out.println("key值"+strKey+"--value值"+strValue);

}

//方式二、通过keySet方法

Set<String> setkey = map.keySet();

Iterator<String> iterator2 = setkey.iterator();

while(iterator2.hasNext())

{

String key = iterator2.next();

String value = map.get(key);

System.out.println("Map中key值是"+key+"--value值"+value);

}

}

}



原创粉丝点击