重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
打开Eclipse或MyEclipse,选中你的项目,选择上面菜单栏的Search(也可以使用IDE的快捷键ctrl+H打开),输入你要查找的关键字,就能整个项目,甚至整个工作空间的查找,控制台旁边的Search标签页会显示查找结果。
公司主营业务:成都网站制作、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出宏伟免费做网站回馈大家。
大哥.我逻辑性不是很高.所以把c1代进去走一次说给你听........
你传入c1........
BinarySearch(Car[] iArr,Car goal,Car left,Car right )
goal指向c1,left指向c1,right指向c4
left=iArr[0];
right=iArr[iArr.length-1];
现在left指向c1,right指向c4
if(goal.price==iArr[middle].price)iArr[middle].price指向c2所以
进入了else if(goal.priceiArr[middle].price)成立 .....你的代码写了递归
传的参数是BinarySearch(iArr,goal,left,iArr[middle-1])后面3个都是指向c1的对象.再次进入
BinarySearch(Car[] iArr,Car goal,Car left,Car right )
现在goal指向c1,left指向c1,right指向c1
left=iArr[0];
right=iArr[iArr.length-1];
现在left指向c1,right指向c4
if(goal.price==iArr[middle].price)iArr[middle].price指向c2所以
进入了else if(goal.priceiArr[middle].price)成立 .....你的代码写了递归
传的参数是BinarySearch(iArr,goal,left,iArr[middle-1])后面3个都是指向c1的对象.再次进入
goal一直都是指向c1,iArr[middle].price一直指向c2
else if(goal.priceiArr[middle].price)一直成立
所以死循环.......
传入c4可能一样也是这原因吧.
不知道是不是这个原因.我表达也不是很清楚也不知道你知不知道你说什么.你看看啦.
//这个方法改一下就可以了
public int compareTo(A arg0) {
if (a arg0.a)
return 1;
else if (a == arg0.a) {
return 0;
} else {
return -1;
}
}
//下面是binarySearch源码,可以发现比较调用的是compareTo方法而不是equals方法
private static int binarySearch0(Object[] a, int fromIndex, int toIndex,
Object key) {
int low = fromIndex;
int high = toIndex - 1;
while (low = high) {
int mid = (low + high) 1;
@SuppressWarnings("rawtypes")
Comparable midVal = (Comparable) a[mid];
@SuppressWarnings("unchecked")
int cmp = midVal.compareTo(key);
if (cmp 0)
low = mid + 1;
else if (cmp 0)
high = mid - 1;
else
return mid; // key found
}
return -(low + 1); // key not found.
}
你的问题好古怪啊。怎么获得对象,拿到对象的引用不就获得了。具体怎么写,User user = new User()这就是一个获得对象的例子。到处都是。没法举。也没必要。
第二个问题:获得的是String类对象。你都这么写了。我晕。你是不是基础部太好啊。
比如你前面input框内输入的值为:哈哈哈
用request.getParameter("username")就可以获得这个哈哈哈。
我劝你还是看看书,把基础知识弄明白了。这些东西都非常容易看懂。如果你想通过代码来引导学习,其实可以。这也是很好也是进步很快的方法,但是起码的知识你还是要懂。否则也只能是白费劲。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class ObjTest {
ObjectOutputStream oos;
ObjectInputStream ois;
String url = "f:/a.txt";//txt文件的目录位置,请自行修改
{
try {
oos =new ObjectOutputStream(new FileOutputStream(url));
ois = new ObjectInputStream(new FileInputStream(url));
} catch (Exception e) {
e.printStackTrace();
}
}
//关闭流
public void close(){
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//写入txt的方法
public void writeOut(Object obj){
try {
oos.writeObject(obj);
oos.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
//读取txt的方法
public Object readIn(){
try {
return ois.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws Exception {
ObjTest ot = new ObjTest();
ot.writeOut(new Person(1,"Tom",true));//写入5个对象
ot.writeOut(new Person(2,"Mary",false));
ot.writeOut(new Person(3,"Jack",true));
ot.writeOut(new Person(4,"Rose",false));
ot.writeOut(new Person(5,"Peter",true));
Person p;
while((p = (Person)ot.readIn()) != null){
if(p.id == 3){ //查找条件
System.out.println(p);
return;
}
}
System.out.println("no found person");
ot.close();
}
}
class Person implements Serializable{
int id;
String name;
boolean sex;
public Person(){}
public Person(int id, String name, boolean sex) {
super();
this.id = id;
this.name = name;
this.sex = sex;
}
@Override
public String toString() {
return id+ "\r\n" + name + "\r\n" + sex +"\r\n";
}
}
请教一下 字符串变量是类中的一个变量么?
还是作为一个对象?
有几点疑惑,请教一下开始的时候声明一个类
class Person;
后来,protected String strName;
再后来有,public void setName(String name)
{
strName=name;
}
到了后面的代码中有Person p=new Person("abcd");
p.setName("dddd")
p.print(); /这是在上面的代码中定义了的输出方法
这里我有个疑惑,不是说String类的字符串变量是作为对象么?那p也是一个对象,而代码 p.setName("dddd"),的意思是不是说对 对象p的strName变量赋值dddd?这里我糊涂了,那这个strName究竟是一个对象还是类Person中的一个成员变量?
如果作为对象,那和普通的对象,比如p之间的区别又是什么呢?
请教各位前辈,帮忙解答一下,我晕了.谢谢啊
学了一些JAVA基础知识后.
我对对象和成员变量的理解是这样的,请各位大虾给指导一下.
以现实生活中的例子来说,比如台灯做为一个类,那某一盏台灯就是一个特定的对象.而这盏台灯的高度,亮度,开关灯的方式,颜色,形状.等等这一系列的属性,其实就是JAVA中的台灯类中的成员变量.那我们可以用下面的格式来设置这些属性值,(对象名.成员变量=具体的值).
但是在上面这个帖子中,strName我理解为这个台灯的名字.如果是这样,用(对象名.成员变量=具体的值)这样的方式来设置这个台灯的名字,似乎也说得过去.
可是书上却又说,字符串变量既是一个类变量,也是一个对象.那这个作为对象怎么去理解呢?我不是很明白.而且这个对象又是有什么具体的属性呢?
请教各位前辈了传递参数和赋值 有什么区别么?我是初学者,请指教