接受鍵盤輸入 后面運(yùn)行有問(wèn)題! 跟你的一樣 你的是True 我的是False
package 集合的用法;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class SetText {
List<KeCheng> keChengs;
private Scanner console;
SetText() {
this.keChengs = new ArrayList<KeCheng>();
this.console = new Scanner(System.in);
}
// 添加方法
// 添加備選課程
public void textadd() {
// 1: 創(chuàng)建一個(gè)課程對(duì)象 并通過(guò)調(diào)用Add方法 添加到備選課程里面
KeCheng cr1 = new KeCheng("1", "數(shù)據(jù)結(jié)構(gòu)");
keChengs.add(cr1);
// System.out.println("添加了 一個(gè)課程:" + temp1.id + " " + temp1.name);
// 2:
KeCheng cr2 = new KeCheng("2", "C語(yǔ)言");
keChengs.add(0, cr2);
// System.out.println("添加了 一個(gè)課程:" + temp2.id + " " + temp2.name);
// 3: 重復(fù)添加課程
// keChengs.add(cr1);
// KeCheng temp0 = (KeCheng) keChengs.get(2);
// System.out.println("添加了 一個(gè)課程:" + temp0.id + " " + temp0.name);
// 以下方法會(huì)拋出數(shù)組下標(biāo)越界異常
/*
* KeCheng cr3 = new KeCheng("3", "高數(shù)"); xinxi.add(4, cr3); KeCheng
* temp3 = (KeCheng) xinxi.get(2); System.out.println("添加了 一個(gè)課程:" +
* temp3.id + " " + temp3.name);
*/
// 4:
KeCheng[] course = { new KeCheng("3", "離散數(shù)學(xué)"), new KeCheng("4", "匯編語(yǔ)言") };
// 將course轉(zhuǎn)換成一個(gè)實(shí)例
keChengs.addAll(Arrays.asList(course));
// 這里是因?yàn)橄聵?biāo)從0開(kāi)始的
KeCheng temp3 = (KeCheng) keChengs.get(2);
KeCheng temp4 = (KeCheng) keChengs.get(3);
// System.out.println("添加了 兩個(gè)課程:" + temp3.id + " " + temp3.name + " " +
// temp4.id + " " + temp4.name);
// 5:
KeCheng[] course2 = { new KeCheng("5", "高等數(shù)學(xué)"), new KeCheng("6", "大學(xué)英語(yǔ)") };
keChengs.addAll(2, Arrays.asList(course2));
KeCheng temp5 = (KeCheng) keChengs.get(2);
KeCheng temp6 = (KeCheng) keChengs.get(3);
// System.out.println("添加了 兩個(gè)課程:" + temp5.id + " " + temp5.name + " " +
// temp6.id + " " + temp6.name);
}
// 通過(guò)for each 方法訪問(wèn)集合元素
public void TextForEach() {
System.out.println("有如下課程待選 ? 通過(guò)for each方法訪問(wèn)");
// 便利集合中的每一個(gè)元素將它取出來(lái) 作為object的一個(gè)變量
for (Object obj : keChengs) {
KeCheng cr = (KeCheng) obj;
System.out.println("課程:" + cr.id + " ?" + cr.name);
}
}
// 測(cè)試List的contains的方法
public void TestListContains() {
// 取得備選課程的第0個(gè)元素
KeCheng course = keChengs.get(0);
// 打印輸出keChengs是否包含course對(duì)象
System.out.println("取得課程: " + course.name);
System.out.println("備選課程中是否包含課程: " + course.name + " ? ?" + keChengs.contains(course));
// 提示輸入課程名稱
System.out.println("請(qǐng)輸入課程名稱: ");
String name = console.next();
// 創(chuàng)建一個(gè)新的課程對(duì)象 ID和名稱 與couse對(duì)象完全一樣
KeCheng course2 = new KeCheng();
course2.name = name;
System.out.println("新創(chuàng)建的課程: ? " + course2.name);
System.out.println("備選課程中是否包含課程: " + course2.name + " ? ?" + keChengs.contains(course2));
}
/**
* @param args
*/
public static void main(String[] args) {
SetText setText = new SetText();
setText.textadd();
setText.TestListContains();
// setText.TextForEach();
// // 創(chuàng)建新的學(xué)生對(duì)象
// Student student = new Student("1", "小明");
// System.out.println("歡迎學(xué)生: " + student.name + " 選課 ! ! !");
// // 創(chuàng)建一個(gè)Scander對(duì)象用來(lái)接收從鍵盤輸入的課程ID
// Scanner reader = new Scanner(System.in);
//
// for (int i = 0; i < 3; i++) {
// System.out.println("請(qǐng)輸入課程ID:");
// String kechengID = reader.next();
// for (KeCheng cr : setText.keChengs) {
// if (cr.id.equals(kechengID)) {
// student.kebiao.add(cr);
//
// // Set 添加對(duì)象 無(wú)論添加多少次 最終只會(huì)保留一個(gè)該對(duì)象(的引用)并且保留的是第一次添加的那個(gè)
// // student.kebiao.add(cr);
//
// // set可以添加一個(gè)空的
// student.kebiao.add(null);
// }
// }
// }
//
// ShuChu(student);
}
// 打印輸出 學(xué)生選擇的課程
public static void ShuChu(Student student) {
System.out.println("共選擇了" + student.kebiao.size() + "門課程");
for (KeCheng cr : student.kebiao) {
System.out.println("選擇了課程" + cr.id + " " + cr.name);
}
}
}
package 集合的用法;
//課程類
public class KeCheng {
String id;
String name;
KeCheng() {
}
KeCheng(String id, String name) {
this.id = id;
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
KeCheng other = (KeCheng) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
package 集合的用法;
import java.util.HashSet;
import java.util.Set;
//學(xué)生類
public class Student {
public String id;
public String name;
public Set<KeCheng> kebiao;
Student(String id, String name) {
this.id = id;
this.name = name;
this.kebiao = new HashSet<KeCheng>();
}
}
2016-10-14
你重寫的equals方法 有問(wèn)題?
這段注釋調(diào),或者刪除
2016-08-08
equals方法重寫的時(shí)候?qū)戝e(cuò)了 ?最后沒(méi)有return true
2016-08-05
what are you talking about, dude?