java期末复习集合常用最全方法复习

 下面我们先来梳理一下它们之间的关系

从大的方面来讲list集合是有序的,不唯一的

而set集合是无序的,唯一的

一.ArrayList集合的常见用法

import java.util.ArrayList;
public class t1 {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();//Arraylist集合适合查找不适合大量增删
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        //获取集合中的元素
        System.out.println("集合的长度"+list.size());
        //打印出指定位置的元素
        System.out.println("第二个元素是:"+list.get(1));
        //删除索引为3的元素
        list.remove(3);
        System.out.println("删除索引为3的元素"+list);
        //替换索引为1的元素为李四2
        list.set(1,"李四2");
        System.out.println("替换索引为1的元素为李四2:"+list);

    }
}

二、 LinkedList常见用法

LinkedList比较适用于查找而ArrayList比较适用于查找


import java.util.LinkedList;
public class t2 {
    public static void main(String[] args) {
        LinkedList list=new LinkedList();//LinkedList适合用作大量的增删但是不适合用作大量查找
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        System.out.println(list.toString());//获取并打印集合中的元素
        System.out.println();
        System.out.println(list);//获取集合中的元素
        list.add(3,"student");
        System.out.println(list);
        //取出集合中第一个元素
        System.out.println(list.getFirst());
        list.remove(3);//删除集合中索引为3的元素
        list.removeFirst();//删除集合中第一个元素
        System.out.println(list);

    }
}

三、迭代器的用法

迭代器我们需要去注意的就是两个常见的方法

第一个就是hasNext()判断集合中是否存在下一个元素

第二个就是next()方法将元素取出

需要注意的是如果next()方法没有取到元素则会抛出异常


import java.util.ArrayList;
public class t3 {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        Iterator it=list.iterator();
        while(it.hasNext()){
           Object obj=it.next();
            System.out.println(obj);
        }

    }
}

四、forearch循环

当使用forearch循环遍历集合和数组时,只能访问其中的元素,不能对其中的元素进行修改


import java.util.ArrayList;
public class t4 {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        //使用foreach循环遍历集合
        for(Object it:list){
            System.out.println(it);//取出并去打印集合中的元素
        }
    }
}

Set集合

Set接口中的元素是无序的,并且都会以某种规则保证存入的元素不出现重复,也就是去重的功能

五、HashSet集合

HashSet是Set接口的一个实现类,,它存储的元素是不可重复的


import java.util.HashSet;
import java.util.Iterator;

public class t5 {
    public static void main(String[] args) {
        HashSet set=new HashSet();
        set.add("张三");
        set.add("张三");
        set.add("李四");
        set.add("王五");
        Iterator it=set.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}

六、LinkedHashSet集合

HashSet存储的元素是无序的,如果想要元素的存储顺序一致,可以使用java提供LinkedHashSet类,LinkedHashSet类是HashSet的子类,与LinkedList一样,它是使用双向链表来维护内部元素关系的

 

import java.util.Iterator;
import java.util.LinkedHashSet;

public class t6 {
    public static void main(String[] args) {
        LinkedHashSet set=new LinkedHashSet();
        set.add("张三");
        set.add("张三");
        set.add("李四");
        set.add("王五");
        Iterator it=set.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}

七、TreeSet集合 

TreeSet是Set接口的另一个实现类,它内部采用二叉树存储元素,这样的结构可以保证集合中没有重复的元素

import java.util.TreeSet;

public class t8 {
    public static void main(String[] args) {
        //TreeSet集合添加元素时,不论元素的添加顺序如何,这些元素都能按照一定的顺序排列
        //集合中的元素进行比较时都会调用compareTo()方法,该方法是在Comparable接口中定义的
        TreeSet ts=new TreeSet();//创建集合
        //向集合中去添加元素
        ts.add(3);
        ts.add(29);
        ts.add(101);
        ts.add(21);
        System.out.println("创建的TreeSet集合为:"+ts);
        //获取收尾元素
        System.out.println("首元素为:"+ts.first());
        System.out.println("尾元素为"+ts.last());


    }

}

 Map集合

Map集合是一种双列的集合,它的每一个元素都有对应的key值和对应的value值,HashMap集合中的键具有唯一性

八、HashMap集合

import java.util.HashMap;
import java.util.Map;

public class t9 {
    public static void main(String[] args) {
        Map map=new HashMap();//多态
        map.put("1","张三");
        map.put("2","李四");
        map.put("3","王五");
        System.out.println("1:"+map.get("1"));
        System.out.println("2:"+map.get("2"));
        System.out.println("3:"+map.get("3"));
    }
}

 简而言之:键相同,值覆盖

九、LinkedHashMap集合


import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

public class t10 {
    public static void main(String[] args) {
        Map map=new LinkedHashMap();
        map.put("3","李四");
        map.put("2","王五");
        map.put("4","赵六");
        Set keySet=map.keySet();
        Iterator it=keySet.iterator();
        while(it.hasNext()){
            Object key=it.next();
            Object value=map.get(key);
            System.out.println(key+":"+value);
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值