首先了解一下ArrayList和LinkedList的区别:
1.ArrayList是基于数组,LinkedList是基于链表实现。
2.对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据
4.查找indexOf,,lastIndexOf,contains等,两者差不多。
(注:这里只是理论分析,事实上也不一定,比如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());
}
最后,欢迎访问风格清新简洁的轻博客网站[指尖一刻]