亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

equals 已經重寫了(自動重寫的),第一次返回了true,但創建新對象后,所有課程都是返回的false,求解?


https://img1.sycdn.imooc.com//5b54080a0001c22407280712.jpg

https://img1.sycdn.imooc.com//5b5408280001449703190256.jpg

package imooc_collection;


import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.Scanner;


public class SetTest {

public List<Course>coursesToSelect;

private Scanner console;

public SetTest(){

coursesToSelect=new ArrayList<Course>();

console=new Scanner(System.in);

}

public void TestAdd()

{

Course cr1 =new Course("1","數據結構");

coursesToSelect.add(cr1);

Course temp=(Course) coursesToSelect.get(0);

//System.out.println("添加課程"+temp.id+":"+temp.name);

Course cr2 =new Course("2","c語言");

coursesToSelect.add(0, cr2);

Course temp2=(Course) coursesToSelect.get(0);

//System.out.println("添加課程"+temp2.id+":"+temp2.name);

// coursesToSelect.add(cr1);

// Course temp0=(Course) coursesToSelect.get(2);

// System.out.println("添加課程"+temp0.id+":"+temp0.name);

//

// Course cr3 =new Course("3","語言");

// coursesToSelect.add(3, cr3);

// Course temp3=(Course) coursesToSelect.get(0);

// System.out.println("添加課程"+temp3.id+":"+temp3.name);

Course [] course={new Course("3","離散數學"),new Course("4","大學英語")};

coursesToSelect.addAll(Arrays.asList(course));

Course temp3=(Course) coursesToSelect.get(2);

Course temp4=(Course) coursesToSelect.get(3);

//System.out.println("添加課程"+temp3.id+":"+temp3.name+"\n"+temp4.id+":"+temp.name);

Course [] course2={new Course("5","數學"),new Course("6","結構")};

coursesToSelect.addAll(2, Arrays.asList(course2));

Course temp5=(Course) coursesToSelect.get(2);

Course temp6=(Course) coursesToSelect.get(3);

//System.out.println("添加課程"+temp5.id+":"+temp5.name+"\n"+temp6.id+":"+temp6.name);

}

/**

*?

*通過foreach?

* @param args

*/

public void TestForeach(){

for(Object obj:coursesToSelect){

System.out.println("有如下待選課程foreach");

Course cr=(Course) obj;

System.out.println("待選課程"+cr.id+":"+cr.name);

}

}

/**

* 測試List的contains 方法

* @param args

*/

public void testListContains(){

//取得0個元素的課程

Course course=coursesToSelect.get(0);

System.out.println("取得課程"+course.name);

System.out.println("是否包含"+course.name+","+coursesToSelect.contains(course));

//創建新的對象

System.out.println("輸入課程名稱");

String name=console.next();

Course course2=new Course();

course2.name=name;

System.out.println("創建新的課程"+course2.name);

System.out.println("是否包含"+course2.name+","+coursesToSelect.contains(course2));

}


public static void main(String[] args) {

// TODO Auto-generated method stub


SetTest t1=new SetTest();

t1.TestAdd();

t1.testListContains();

//t1.TestForeach();

//學生選課

// Student student=new Student("1","小明");

// System.out.println("歡迎"+student.name+"選課");

// Scanner console=new Scanner(System.in);

//

//

// for(int i=0;i<3;i++){

// System.out.println("輸入要選課的id");

// String courseId=console.next();

// for (Course cr : t1.coursesToSelect) {

// if(cr.id.equals(courseId)){

// student.courses.add(cr);

// /**

// * 重復添加無意義

// */

// //student.courses.add(cr);

// //student.courses.add(null);

//

// ??

// }

//

// }

// }

// t1.testForEachSet(student);

}

public void testForEachSet(Student student)

{

System.out.println("選了多少課程"+student.courses.size());

for (Course cr : student.courses) {

System.out.println("選了什么課程"+cr.id+":"+cr.name);

}

}


}


正在回答

2 回答

course2.id = "2";

0 回復 有任何疑惑可以回復我~

找到原因了,這里我們調用自動重寫的話,因為我們這里只是通過name進行比較,所以不能把equals中的id也加進去。

0 回復 有任何疑惑可以回復我~
#1

前驅

我元是同樣的情況,這是為什么
2019-02-09 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

equals 已經重寫了(自動重寫的),第一次返回了true,但創建新對象后,所有課程都是返回的false,求解?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號