发表于: 2018-01-06 01:09:43

2 849


今天完成

1.集合类的学习;

    集合类又称为容器

    集合类存放的都是对象的引用,而非对象本身;

    常用的集合类型主要有3种:set(集)、list(列表)和map(映射);

    List和Set继承了Collection接口;

  1).Collection接口

     a.Collection接口是层次结构中的根接口(Map也是根接口);

     b.构成Collection的单位称为元素;

     c.List接口和Set接口继承Collection接口;

     d.迭代器Iterator的学习; (以下是网上查的资料整理和一点点修改)   

      迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭代的初始值。

       迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式;迭代器是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。

         Iterator主要有三个方法:hasNext()、next()、remove();

           hasNext:没有指针下移操作,只是判断是否存在下一个元素;

           next:指针下移,返回该指针所指向的元素;

           remove:删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素;

      I.当创建完成指向某个集合或者容器的Iterator对象时,这时的指针其实指向的是第一个元素的上方,即指向一个空

      II、当调用hasNext方法的时候,只是判断下一个元素的有无,并不移动指针

      III、当调用next方法的时候,向下移动指针,并且返回指针指向的元素,如果指针指向的内存中没有元素,会报异常。

      IV、remove方法删除的元素是指针指向的元素。如果当前指针指向的内存中没有元素,那么会抛出异常;

  2).List集合

    List集合包括了List接口及List接口的所有实现类;

    List接口:

       通过set()方法和get()方法取得索引位置的元素或修改指定位置的对象;

     List接口的常用实现类:ArryList和linkedList

import java.util.*;

public class Gather {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
       list.add("a");
       list.add("b");
       list.add("c");
       int i = (int) (Math.random() * (list.size() - 1));
       System.out.println("随机获取数组中的元素:" + list.get(i));
       list.remove(2);
       System.out.println("将索引是'2'的元素从数组移除后,数组中的元素是:");
       for (int j = 0; j < list.size(); j++) {
System.out.println(list.get(j));
       }
}
}

   

    3).Set集合

       Set常用的实现类有HashSet类和TreeSet类

package practice;

import java.util.*;
class UpdateStu implements Comparable<Object>
{
String name;
   long id;
   public UpdateStu(String name, long id)
{
this.id = id;
       this.name = name;
   }
public int compareTo(Object o)
{
UpdateStu upstu = (UpdateStu) o;
       int result = id > upstu.id ? 1 : (id == upstu.id ? 0 : -1);
       return result;
   }
public long getId() //构造获取ID方法
   {
return id;
   }
public void setId(long id) //构造设置ID方法
   {
this.id = id;
   }
public String getName() //构造获取name方法
   {
return name;
   }
public void setName(String name) //构造设置name方法
   {
this.name = name;
   }
public static void main(String[] args)
{
UpdateStu stu1 = new UpdateStu("李同学", 01011);//创建UpdateStu对象
       UpdateStu stu2 = new UpdateStu("陈同学", 01021);
       UpdateStu stu3 = new UpdateStu("王同学", 01051);
       UpdateStu stu4 = new UpdateStu("马同学", 01012);
       TreeSet<UpdateStu> tree = new TreeSet<>();
       tree.add(stu1);
       tree.add(stu2);
       tree.add(stu3);
       tree.add(stu4);
       Iterator<UpdateStu> it = tree.iterator();//Set集合中的所有对象的迭代器
       System.out.println("Set集合中的所有元素:");
       while (it.hasNext()) //遍历集合
       {
UpdateStu stu = (UpdateStu) it.next();
           System.out.println(stu.getId() + " " + stu.getName());
       }
it = tree.headSet(stu2).iterator();//截取排在stu2与stu3之间的对象
       System.out.println("截取前面部分的集合:");
       while (it.hasNext()) //遍历集合
       {
UpdateStu stu = (UpdateStu) it.next();
           System.out.println(stu.getId() + " " + stu.getName());
       }
it = tree.subSet(stu2, stu3).iterator();
       System.out.println("截取中间部分的集合");
       while (it.hasNext())
{
UpdateStu stu = (UpdateStu) it.next();
           System.out.println(stu.getId() + " " + stu.getName());
       }
}
}

明天计划

1.完成集合类的学习;

2.spring的学习;(今天看看基础太久了)

遇到的问题

引用数据类型的强制类型转换;

通过看论坛已理解部分,需要进一步学习;


返回列表 返回列表
评论

    分享到