ArrayList,LinkedList,HashSet,TreeSet,
Stack ,Hashtable.
还有他们主要处理那一中类型的数据?
----------------解决方案--------------------------------------------------------
天一, 哪一种都可以,取决于你的实现的要求, 比如,如果要想 insert, remove 比较快呢,就用 LinkedList,因为对于一个list 来讲,element之间是手牵手联系着的,所以当你添加或删除一个element 时不必对 element作移位的动作,这样执行的效率就高。我记得在这个论坛上贴出过我自己写的一个DLList,程序的完美性绝不会输给 Sun 的那个LinkedList . HashSet, HashMap, Hashtable 主要是搜寻的效率很高,因为它遍历的只是element 的index, 而其内容是不看的,是不是这样就很看. 通常 ArrayList 和 Vector 被使用的几率很高. Stack 主要是先进后出的原则,或者说后进先出的原则,取决于是否合适于你的算法.
----------------解决方案--------------------------------------------------------
我想问你一个一下,你学编程几年了,为什么这样好呢?有什么好的学习方法吗?
----------------解决方案--------------------------------------------------------
我学Java 的时间不长,大概一年吧,也是学校课程的需要所以学了Java,当然还有很多自己也不懂。
我学C/C++ 的时间较长,应该有5年了,我始终没有停止过对C/C++ 的学习,所以相对来讲,学习Java时就觉得容易很多。对算法和数据结构也学了一下,但没有用功,所以相对来讲,通常我解题时,算法都是自己思考,这样就会速度慢些,也就是说,我不是算法的熟练工,碰到一些需要特殊算法的问题时,就临时抱佛脚去翻算法方面的书。我觉得作为一名程序员需要的是灵性,当然我也不排斥算法的熟练性,能熟练终归是好的。
你提的那个学习方法的问题,今天在C++ 教室板块也有人提了,我提了一些我的个人想法,你有兴趣可以看看。
----------------解决方案--------------------------------------------------------
我有一个问题是类的单例模式为什么不能实现呢? //单列模式的框架 abstract class class1 { public static class1 cla;
static String str=""; private static Boolean headless; protected class1() { }
public static synchronized class1 getClass1() { return cla; } public void mat(String a) { str=a; System.out.println(str); } }
class clss2 {
public static void main(String args[]){ try { class1 a=class1.getClass1(); System.out.println(a.toString()); a.mat("aaa"); class1 b=class1.getClass1(); b.mat("bbb"); class1 c=class1.getClass1(); c.mat("ccc");
System.out.println(a.str); } catch(Exception e) { System.out.println(e.toString()); }
}
}
----------------解决方案--------------------------------------------------------
我想问你你c#精通吗?
----------------解决方案--------------------------------------------------------
那个操作符重载应该怎样理解啊?
----------------解决方案--------------------------------------------------------
c# 没有学过,不打算学,样样都学学不过来啊。
----------------解决方案--------------------------------------------------------
// 你的5楼的程序修改如下:
class class1
{
public static class1 cla;
static String str="";
private static Boolean headless;
protected class1()
{
}
public static synchronized class1 getClass1()
{
return cla = new class1();
}
public void mat(String a)
{
str=a;
System.out.println(str);
}
}
class class2
{
public static void main(String args[])
{
try
{
class1 a = class1.getClass1();
System.out.println(a.toString());
a.mat("aaa");
class1 b=class1.getClass1();
b.mat("bbb");
class1 c=class1.getClass1();
c.mat("ccc");
System.out.println(a.str);
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
----------------解决方案--------------------------------------------------------
这样修改就没意义了。
我想让第一个类是抽象类。
而不是去掉这个抽象类。
还有其他方法吗/
----------------解决方案--------------------------------------------------------