为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第三季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • 基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使用String类的 valueOf() 方法 3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 将字符串转换成基本类型有两种方法: 1. 调用包装类的 parseXxx 静态方法 2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
    查看全部
  • 装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱。 拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱。
    查看全部
  • ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象。 equals(): 比较存储在两个字符串对象中的内容是否一致。
    查看全部
  • 使用set(index,Object element)修改元素,index表示索引位置,element表示新对象。 修改List的元素 public void testModify(){ coursesToSelect.set(4,new Course("7","毛概")); }
    查看全部
  • 5.以下三种方法都是用来取出List中元素的方法: -----for循环----- public void testGet(){ int size=coursesToSelect.size(); for(int i=0;i<size;i++){ Course cr=(Course) coursesToSelect.get(i); System.out.println("取出的课程:"+cr.getId()+":"+cr.getName()); } } -----迭代器----- Iterator是一个接口,依赖于集合存在的 Iterator it=courseToSelect.iterator(); while(it.hasNext()){ Course cr=(Course) it.next(); System.out.println("课程:" + cr.id + ":" + cr.name); } -----for each(增强for循环)----- 凡是继承了Iterable接口的类所生成的对象都可以用for/each循环 for(Object obj:coursesToSelect){//遍历集合中的每一个元素,作为每一个Object变量 Course cr=(Course) obj; System.out.println("课程:" + cr.id + ":" + cr.name);
    查看全部
  • 1.temp改temp0问题 在3:38这个点,老师是怎么做到3个temp直接一起改成3个temp0的,我点击了弹出来的rename,自动全改成了temp1,temp0始终自由设置不了 把鼠标放在temp后面,使用alt+shift+r,然后再键入0,就可以改了。 2.为什么是List list = new ArrayList(),而不直接用ArrayList 编程是要面向对象编程,针对抽象(接口),而非具体 List 是接口,ArrayList是实现 实现List接口的有ArrayList、LinkedList、Vector等,所以用哪个就直接new 一个接口实现这是一种很好的设计模式. 一个接口有多种实现,这种写法是java面向对象的一种思想,依赖倒置原则, 即依赖于抽象不依赖于实现(具体)。 给调用者提供的应该是接口或者抽象类,而实现者可以实现或者继承接口或者抽象类来满足调用者, 这样调用者不必知道实现者怎样操作,实现者也可以根据具体情况去实现,这样去除了耦合。这就是java设计模式的基础思想之一。 从Java语法上,这种方式是使用接口引用指向具体实现,这样大大提高了代码使用的灵活性。 比如,你若希望用LinkedList的实现来替代ArrayList的话,只需改动一行即可: List list = new LinkedList(); 而程序中的其它部分不需要改动,这样比较灵活,不会失去通用性。 3.Course cr=(Course)coursesToSelect.get(i); 为什么要在前面加上(Course)? 强类型转换。因为get()返回的是Object对象,而Course对象继承了Object。所有可以将get()获取的对象通过(Course)转换为Course 对象的实体。 4.iterator和foreach 请教高手:iterator和foreach有什么区别?哪个节省内存?建议编程时使用哪一个呢 二者都是用于遍历的工具,iterator是一个接口,使用时需要调用它的hasNext()和next()函数,并且一般需要配合循环语句才能实现遍历,比较麻烦。foreach是一个循环语句,相当于将iterator和for循环结合在一起,使用比较便捷,二者内存消耗差不多,建议使用foreach。
    查看全部
  • indexOf方法的原理
    查看全部
  • // 使用foreach循环输出数组中的元素 for (类型 变量名 : 需要遍历的数组名) { System.out.print(变量名 + " "); }
    查看全部
  • 创建了新的对象,所指向的内存空间不同
    查看全部
  • list中还有addAll(List list) 就是将一个List里面的元素一股脑的全都加进去,妙哉妙哉 一般定义一个数组,如何把一个数组转换成List? 调用方法Arrays.asList(Object[] obs);//可以将一个数组转换为一个List,然后可以将这个元素传进addAll()里面 当然还有addAll(index,List list)方法 removeAll直接传入一个list,同理 记得取出东西之后,要类型强转哦!!!因为取出来都是Object的。 向List中添加元素的几种方法: 新建List类 public List courseToSelect; 初始化List类 public ListTest() { this.courseToSelect=new ArrayList(); } 向List中添加数据 method_1 courseToSelect.add(对象1); method_2 courseToSelect.add(位置,对象2); method_3 courseToSelect.addAll(Arrays.asList(数组_对象3)); method_4 courseToSelect.addAll(位置,Arrays.asList(数组_对象4)); 获取 Course temp=(Course)courseToSelect.get(位置); addall(int index,Collection c)方法,list类中的方法,这里调用,用来一下添加多个对象。int index为添加进去的位置,Collection c为要添加的集合, Arrays.alist()方法可以把数组转化为list集合, 由于list也是collection的子类,所以这里要这样添加多个对象。
    查看全部
  • (1) 对象被存入集合都变成object类型了 取出时需要类型强转 例:Course temp = (Course)coursesToSelect.get(0); (2) 添加进list中的位置(index)介于【0,length】之间;0代表插到队头,length代表插到队尾。 (3) List是接口,所以在构造方法中不能直接实例化,而通过ArrayList()实例化!!! 例:public List coursesToSelect = new ArrayList(); (4) List、Set、Map都是接口 不可以直接对他实例化 要借助相应的实例化类 ArrayList(), HashSet(),HashMap(); (5) 调用Add()方法添加到List中。有两种方法: 1. 直接添加,例:CoursesToSelect.add(cr1); 2. 可以指定添加的位置,例:CoursesToSelect.add(0,cr1); (6) 如果添加到List中的长度大于他目前的长度,则系统会出现异常,即数组下表越界异常 [ 收起全文 ]
    查看全部
  • 构造函数里面的 1 this.courseToSelect=new ArrayList(); 是为了给成员变量创建一个对象,并用courseToSelect对其应用,this关键字表示这个courseToSelect属于对象的,如果改成: 1 List courseToSelect=new ArrayList(); 这个courseToSelect就变成了局部变量,并没有传递给成员变量,因此后面调用coursesToSelect.add()时,实际上对象的courseToSelect并没有通过构造函数初始化,仍然是一个NULL,运行时就会出现空指针异常。
    查看全部
  • 6-4 containsKey(id) 和 containsValue(Obj)方法判断集合中有没有要查询的值存在。 public void testContainsKeyOrValue() { System.out.println("请输入要查询的学生id:"); Scanner scanner = new Scanner(System.in); String id = scanner.next(); //containsKey方法通过id的值就可以判断Map中有没有值。 if (students.containsKey(id)) { System.out.println("存在学生id为" + id + "的学生"+ "名字为" + students.get(id).name); } String name = scanner.next(); // containsValue方法要用参数为对象的方式去判断,而且要重写其equals的方法。 if (students.containsValue(new Student("", name))) { System.out.println("存在名字为" + name + "的学生"); } }
    查看全部
    0 采集 收起 来源:练习题

    2018-03-22

  • 6-3 1. indexOf(obj),查找对象所在的索引位置: public void testCon() { System.out.println("获得已有课程:"); Course course = selCourse.get(0); System.out.println("课程的名称为:" + course.name + " "+ selCourse.contains(course)); //Course course2 = new Course("0", "大学英语"); //System.out.println("课程的名称为:" + course2.name + " "+ selCourse.contains(course2)); System.out.println("请输入课程名称"); String name = scanner.next(); Course course2 = new Course(); course2.name = name; System.out.println("课程的名称为:" + course2.name + " "+ selCourse.contains(course2)); if (selCourse.contains(course2)) { /* * 如果list中有多个值是相同的,就会返回第一个找到的索引位置,如果用lastIndexOf(obj)就会倒着来找,并且找到第一个,就是第一个的索引。 * 如果indexOf(obj)和lastIndexOf(obj)都没有找到数据,那就返回-1. */ System.out.println("课程名称为"+ course2.name + "的索引位置为" + selCourse.indexOf(course2)); //通过indexOf(course)去查找课程course的索引位置 } }
    查看全部
    0 采集 收起 来源:练习题

    2018-03-22

  • indexOf()方法与lastIndexOf()方法实现原理: 1、遍历调用每个元素的equals()方法,如果返回true则将次元素的索引返回; 2、如果有多个相同元素,则只返回第一个元素的索引; 3、lastIndexOf()方法则从最后一个元素开始遍历;
    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!