当前位置: 移动技术网 > IT编程>开发语言>Java > 20200729集合框架与泛型(Iterator接口,Map接口,Collection类和泛型)

20200729集合框架与泛型(Iterator接口,Map接口,Collection类和泛型)

2020年07月31日  | 移动技术网IT编程  | 我要评论

一.Iterator接口

1.hasNext()方法:判断是否存在下一个可访问的元素,如果仍有元素可以迭代,则返回true.
2.next()方法:返回要访问的下一元素
3.步骤:

  • 导入Iterator接口
  • 使用集合的iterate()返回Iterator对象
  • while循环遍历
  • 使用Iterator的hasNext()方法判断是否存在下一个可访问的元素
  • 使用next()方法返回要访问的下一个元素
    4.代码
Iterator it=list.iterator()
while(it.hasNext()){
String name=(String)it.next();
System.out.println(name);
}

二.Map接口

1.HashMap实现类

  • 导入HashMap类:
    import java.util.HashMap;
    import java.util.Map;
  • 创建HashMap对象:
    Map students=new HashMap();
  • 常用方法:
    map.put(“US”,“美国”);//增
    map.get(“CN”);//查
    map.remove(“US”);//删
    map.put(“CN”,“中国”);//改
  • 遍历的四种方式:
    遍历key的方式:
Set keys=map.keySet();
        for(Object key:keys){
            System.out.println(key+":"+map.get(key));
        }

遍历value的方式:

Collection values=map.values();
        for(Object value:values){
            System.out.println(value);
        }

获取键值对:

Set entry = map.entrySet();
        for(Object o:entry){
            System.out.println(o);
        }

iterator遍历:

  Set keys=map.keySet();
        Iterator itr=keys.iterator();
        while(itr.hasNext()){
            System.out.println(itr.next());
        }
public class TestHashMap {
    public static void main(String[] args) {
        //创建学员对象
        Student student1=new Student("胡","女");
        Student student2=new Student("易烊千玺","男");
        //创建保存"键-值对
        Map<String,Student> students=new HashMap<String, Student>();
        //把英文名称与学员对象按照"键值对"的方式存储在HashMap中
        students.put("OldHu",student1);
        students.put("Jackson",student2);

        //输出英文名
       /* System.out.println("学生英文名:");
        for(Object key:students.keySet()){
            System.out.println(key.toString());
        }*/
        //输出学生详细信息
        /*System.out.println("学生详细信息:");
        for(Object value:students.values()){
            Student student=(Student)value;
            System.out.println("姓名:"+student.getName()+", 性别:"+student.getSex());
        }*/
        //输出学员个数
        /*System.out.println("已添加"+students.size()+"个学员信息");
        System.out.println("键集:"+students.keySet());*/
        String key="OldHu";
        //判断是否存在"jack"这个键,如果存在,则根据键获取相应的值
        if(students.containsKey(key)){
            Student student=(Student)students.get(key);
            System.out.println("英文名为"+key+"的学员姓名:"+student.getName()+",性别是"+student.getSex());
        }
       /* Set entry=students.entrySet();
        for(Object o:entry){
            System.out.println("英文名为"+students.get(o)+"的学员姓名:"+students.keySet()+",性别是"+students.values());
        }*/
        /*String key1="Rose";
        if (students.containsKey(key1)) {
            students.remove(key1);
            System.out.println("学员"+key1+"的信息已删除");
        }*/

    }
}

三.Collection类

java提供的一个集合操作工具类,用于对集合元素的排序,查找和替换等操作。

1.对集合元素排序和查找

  • Comparable接口,compareTo():返回值:负整数·,零,正整数
  • sort():ArrayList list=new ArrayList;Collection.sort(list);//排序
  • binarySearch():index=Collection.binarySearch(list,student3);//查找下标

2…替换集合元素

  • Collection.fill(list,“haha”);替换集合内的元素

四.泛型

1.定义:参数化类型
2.定义语法:类1或者接口<类型实参>对象=new 类2<类型实参>()
ArrayListlist=new ArrayList();
表明:ArrayList集合list存储的元素类型必须是String类型

五.快速排序

参考博客链接:https://blog.csdn.net/shujuelin/article/details/82423852

public class Quicksort {
    public static void quick(int[]a,int start,int end){
        //把首位定为标准位tmp
        int i=start,j=end;
        if(i>=j)return;
        int tmp=a[i];
        //i=start j=end
        //循环条件:知道i<j,直到等于
        //循环内要有两个循环来重复i++和j--的过程
        while(i<j){
            while(a[j]>=tmp&&i<j){j--;} //如果该数大于基准位,则j--即可
            a[i]=a[j];//不满足上一条循环条件,则需要进行对应赋值,不满足条件时,说明当前a[j]小于基准位,则吧该数赋值给a[i];
            //i++;
            while(a[i]<=tmp&&i<j)i++;//如果该数小于基准位,则i++即可
            a[j]=a[i];//不满足条件时,那就将a[i]赋值给a[j]
           // j--;
        }
        a[i]=tmp; //出外层循环时,把标准位插入在i处
        quick(a,start,i-1);
        quick(a,i+1,end);
        //递归调用(自己调自己)
    }
    public static int[] randomArray(int length){
        int[] a=new int[length];
        for (int i = 0; i <a.length ; i++) {
            //随机数生成
            Random r=new Random();
            a[i]=r.nextInt(100);
        }
        return a;
    }
    public static void main(String[] args) {
        int[] a=randomArray(10);//生成随机数组
        System.out.println(Arrays.toString(a));//
        long now=System.currentTimeMillis();//当前时间
        quick(a,0,a.length-1);
        System.out.println(Arrays.toString(a));
        long used=System.currentTimeMillis()-now;
        System.out.println("花费:"+used);

    }
}

本文地址:https://blog.csdn.net/May_J_Oldhu/article/details/107698024

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网