contains比較
package com.java.lian20166008;
public class Couser {
public int id;
? ? public String name;
? ? @Override
? ? public int hashCode() {
? ? final int prime = 31;
? ? int result = 1;
? ? result =prime * result +((name == null) ? 0 : name.hashCode());
? ? return result;
? ? }
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Couser))
return false;
Couser other = (Couser) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
public Couser(int id,String name){
? ? this.id=id;
? ? this.name=name;
? ? }
? ? public Couser(){
? ? ?
? ? }
}
package com.java.lian20166008;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class TestList {
public List<Couser> couser;
private Scanner consle;
public TestList(){
couser=new ArrayList<Couser>();
consle=new Scanner(System.in);
}
public void testAdd(){
/**
* 創(chuàng)建一個(gè)課程對(duì)象,并通過調(diào)用add方法,添加備選課程List中
*/
Couser[] cr3={new Couser(1, "英語"),new Couser(2, "漢語"),
new Couser(3, "日語"),new Couser(4, "法語"),
};
couser.addAll(Arrays.asList(cr3));
}
public void testForeach(){
System.out.println("有如下課程待選(通過for each訪問)");
for(Object obj:couser){
Couser cr=(Couser)obj;
System.out.println("課程:"+cr.id+":"+cr.name);
}
}
public void testContains(){
//取得備選課程序列的第0個(gè)元素
Couser stu=couser.get(0);
//打印輸出couser是否包含stu對(duì)象
System.out.println("取得課程:"+stu.name);
/*Contains方法的實(shí)現(xiàn)原理,java中所以的類都是繼承與Object類。
* Object中定義了一個(gè)equals方法,用于檢測(cè)兩個(gè)對(duì)象是否相等
* 當(dāng)調(diào)用List中的contains方法時(shí),其實(shí)就相當(dāng)于遍歷List中的每個(gè)元素,
* 調(diào)用每個(gè)元素的equals方法去跟contains方法中的每個(gè)參數(shù)進(jìn)行比較*/
System.out.println("備選課程中是否包含課程 :"+stu.name+","+couser.contains(stu));
//創(chuàng)建一個(gè)新的課程對(duì)象,ID和名稱,與stu對(duì)象完全一樣
/*Students stu2=new Students(stu.id,stu.name);
System.out.println("新創(chuàng)建課程:"+stu2.name);
System.out.println("備選課程中是否包含課程 :"+stu2.name+","+couser.contains(stu2));*/
/*改寫后*/
//提示輸入課程名稱
System.out.println("請(qǐng)輸入課程名稱:");
String name=consle.next();
? //Students報(bào)錯(cuò):重寫一個(gè)無參的構(gòu)造方法
Couser stu2=new Couser();
stu2.name=name;
System.out.println("新創(chuàng)建課程:"+stu2.name);
System.out.println("備選課程中是否包含課程 :"+stu2.name+","+couser.contains(stu2));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestList ct=new TestList();
ct.testAdd();
ct.testForeach();
ct.testContains();
ct.testForeach();
// 創(chuàng)建一個(gè)學(xué)生對(duì)象
// Students student=new Students(1,"葉凡");
// System.out.println("歡迎學(xué)生"+student.name+"選課");
// //創(chuàng)建一個(gè)Scanner對(duì)象,用于接收從鍵盤輸入的Id
// Scanner console=new Scanner(System.in);
// for(int i=0;i<3;i++){
// System.out.println("請(qǐng)輸入課程Id:");
// int couserId=console.nextInt();
// for(Couser cr:ct.couser){
// if(cr.id==couserId){
// student.wan.add(cr);
// /*Set中,添加某個(gè)對(duì)象,無論添加多少次
// 最終只會(huì)保留一個(gè)該對(duì)象(的引用)
// 并且保留的是第一次添加的那一個(gè)個(gè)*/
// //student.wan.add(cr);
// }
// }
// }
// ct.testFor(student);
// }
// //打印輸出學(xué)生所選課程
// public void testFor(Student student){
// System.out.println("共選擇了"+student.wan.size()+"門課程");
// for(Couser cr:student.wan){
// System.out.println("選擇了課程:"+cr.id+cr.name);
// }
}
}
為什么會(huì)出現(xiàn)輸入的字符串的第一個(gè)字符的拼音?????????????????
2016-07-09
我的出現(xiàn)了整個(gè)課程的拼音……
2016-06-09
不懂 沒有遇到過