Java常用集合类的常用方法 学习笔记

时间:2021-09-29 16:59:16

首先了解一下ArrayList和LinkedList的区别:

1.ArrayList是基于数组,LinkedList是基于链表实现。

2.对于随机访问getsetArrayList优于LinkedList,因为LinkedList要移动指针。

3.对于新增和删除操作addremoveLinkedList比较占优势,因为ArrayList要移动数据

4.查找indexOf,lastIndexOfcontains等,两者差不多。

(注:这里只是理论分析,事实上也不一定,比如ArrayList在末尾插入和删除数据就不涉及到数据移动,不过还是有个建议,随机访问比较多的话一定要用ArrayList而不是LinkedList,如果需要频繁地插入和删除,应该考虑用LinkedList来提高性能)

 

 

ArrayList<Object> alist=new ArrayList<Object>();
添加数据: alist.add();
   alist.add(1,"小明");//表示在索引1处添加数据
删除数据: alist.remove(); 括号里可以是索引,也可以是具体的值
查询数据:
 第一种方法:

for(Object obj : alist){
   System.out.println(obj);  
      }
 第二种方法:迭代器遍历查询
  Iterator<Object> it=alist.iterator();
  while(it.hasNext()){
   System.out.println(it.next());
  }


LinkedList<Object> llist=new LinkedList<Object>();
添加数据: llist.add();
删除数据: llist.remove();
查询数据:
 第一种方法:
     for(Object obj : llist){
  System.out.println(obj);
     }
 第二种方法:
     Iterator<object> obj=llist.iterator();
            while(it.hasNext())
     {
  System.out.println(it.next());
      }


HashMap<Integerk,String> hm=new HashMap<Integer,String>();
添加键值对:hm.put(101,"小明");
           hm.put(102,"小刚");

在添加某键时判断某键是否存在:
 if(hm.containsKey(101){//如果存在则返回true
  System.out.println("键101已存在");
 }else{
  hm.put(101,"小芳");
 }

查询:使用迭代器遍历所有键的集合
 Iterator<Integer> it=keys.iterator();
 while(it.hasNext()){
  System.out.println(it.next());
 }
       遍历所有键值的集合
 Collection<String> ct=hm.values();
 Iterator<String> it2=ct.iterator();
 while(it2.hasNext())
 {
  System.out.println(it2.next());
 }
 获取所有的键值对集合
 Set<Map.Entry<Integer,String>> entry=hm.entrySet();
 Iterator<Map.Entry<Integer,String>> it3=entry.iterator();
 while(it3.hasNext()){
  Map.Entry<Integer,String> me=it3.next();//获取正在遍历的一个键值对
  System.out.println("键:"+me.getKey()+" 值:"+me.getValue());
 }


最后,欢迎访问风格清新简洁的轻博客网站[指尖一刻]