黑马程序员-集合的简记

集合的简记

------- android培训java培训、期待与您交流! ----------

集合

1.       集合用于存储对象的容器

2.       集合长度是可变的

3.       集合中不可以存储基本数据类型

集合容器因为内部结构的不同,用多种具体容器

CollectionCollection层次结构中的根接口

Collection常用方法:

         add(Object obj)  remove(Object obj)  clear() contains(Object obj)  size()  iterator()等等。

 

遍历集合的几种方法

例:

public static void main(String[] args) {
  List list = new ArrayList();
  list.add(3);
  list.add(5);
  list.add(6);
  list.add(9);
/*
    方法一   利用迭代器和while循环去遍历集合
*/
  Iterator iterator = list.iterator();
  while (iterator.hasNext()) {
   int i = (Integer)iterator.next(); 
   System.out.println(i);
  }
/*
    方法二  利用for循环迭代集合
*/
for (Iterator iter = list.iterator(); iter.hasNext();) {
  int i = (Integer)iter.next();
   System.out.println(i);
  }
/*
    方法三  利用foreach循环遍历集合
*/
  for (Object obj : list) {
   System.out.println(obj);
  }
  /*
    方法四  利用普通for循环和get()方法去遍历集合
*/
  for (int i = 0; i < list.size(); i++) {
   int k = Integer.parseInt(list.get(i).toString());
   System.out.println(k);
  }
}


 

 

Collection子接口 ListSte特点:

1,  List 有序存入和取出,元素可以重复,

2Set无序元素不能重复

 

List常用子类特点:

1.       Vector   内部是数组数据结构,同步的

2.       ArrayList  内部是数组数据结构,不同步的,查询元素的速度快

3.       LinkedList 内部是链表数据结构,不同步的,增删元素的速度快

 

Set常用子类和特点

1.       HashSet 内部数据结构是哈希表,不同步的

集合存取自定义对象,自定义的对象应该重写hashCode()equals(Object obj)方法

2.       TreeSte  内部数据结构是二叉树,可以对集合元素进行排序,不同步的

对对象进行排序,得先让对象具有可比性,实现Comparable接口重写compareTo方法,或者自定义一个比较器

判断元素的唯一方法是根据比较方法的返回结果进行比较,为0相同认为就是同一元素。

 

Map集合

   又称双列集合,以键值对方式存储

Map集合常用子类

         Hashtable  :内部数据结构是哈希表,是同步的,不允许null作为键和值

         HashMap  :内部数据结构是哈希表,不是同步的,允许null作为键和值

         TreeMap    :内部数据结构是二叉树,不是同步的,可以对Map集合中的键进行排序。

 

Map集合的遍历:

  Map<String,String> map=new HashMap<String,String>();

       map.put("一","haha1");

       map.put("二","haha2");

       map.put("三","haha3");

       map.put("四","haha4");

 //用keySet

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

       for(Iterator<String> i=set.iterator();i.hasNext();)

       {

           String str=i.next(); 

           System.out.println(str+"::"+map.get(str));

       }

       

//用entrySet

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

for(Iterator<Map.Entry<String, String>> i=set1.iterator();i.hasNext();)

       {   

           Map.Entry<String, String> me=i.next();

           System.out.println(me.getKey()+"::"+me.getValue());

       }


 

     

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值