注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

代码从DELPHI语言到JAVA语言[delphi]

JAVA相关 水墨上仙 2539次浏览 已收录 手机上查看

代码从DELPHI语言到JAVA语言[delphi],从DELPHI到JAVA[delphi]

  <pre class="prettyprint linenums">

1 字符串处理

   DELPHI

          var s :string;

          s := s + &#039;a string&#039;;

   JAVA             习惯用法

          String s = new String();

          s += &#039;a string&#039;;

          由于String对象不可修改,导致对String对象赋值会有一个StringBuffer对象产生并销毁,一个新的String对象被产生。在大字符串处理和循环处理时,性能极差。(参见《JAVA 字符串处理速度测试》)

   JAVA             优化用法

          StringBuffer s = new StringBuffer();       //如果字符串较大,最好能够赋予一个初始的StringBuffer大小。

          s.Append(&#039;a string&#039;);

2 数组

   DELPHI

          var a:array of string;

          SetLength(10);

   JAVA             1: Arrays

          String[] a = new String[10];

          int [] a = {1,2,3,4}

          可以直接赋初始值(不管是基本类型还是对象)

          注意:不可改变数组大小!

          拥有以下实用函数:full,sort,equals,binarySearch,System.arraycopy

   JAVA             2: ArrayList (LinkedList)

          ArrayList a = new ArrayList();

          a.add(new Integer(1));

          a.get(1);

          注意:数组的值必须是对象类型!

          不能用“[]”取值。

          容器的元素是Object类。(也即使用时需要强制转型)【JDK1.5支持泛型JAVA】

          ArrayList随机访问性能好,但元素插入和删除性能差。LinkedList反之。

          LinkedListList中央插入和删除元素性能好,可以用来制作stack,queue或deque。包含下列函数:addFirst,addLast,getFirst,getLast,removeFirst,removeLast

          要访问一个容器,最好是使用迭代器,例如a.iterator()。

          迭代器使用:

          void print(Iterator e) { while (e.hasNext) System.out.println(e.next());}

          迭代器包含下列函数:next,hasNext,remove

          注意:当取得一个迭代器后,如果容器被改变,会抛出异常, delphi override 和 overload 的区别。

3 集合

   DELPHI

          var option : set of char;

          option := [&#039;a&#039;,&#039;b&#039;];

   JAVA             1 BitSet

          大小不限制。

          性能相比array略差。

   JAVA             2 HashSet (TreeSet)

          元素必须唯一。

          每个元素都必须定义equals函数和compareTo函数,delphi pchar string互转函数。

          HashSet查找性能好,但无法排序。必须定义hashCode函数。

          TreeSet是有序的,但查找性能较差。

          TreeSet可以产生大小在一定范围内的一批元素。

          Collection函数说明(包含Set和Map):

函数名称

函数说明

备注

add

将对象增加到容器

可能未被实现

addAll

将一批对象增加到容器

可能未被实现

clear

清除所有元素

可能未被实现

contains

检查是否存在元素

<o:p></o:p>

containsAll

检查是否存在一批元素

<o:p></o:p>

isEmpty

容器是否为空

<o:p></o:p>

iterator

返回一个迭代器

<o:p></o:p>

remove

删除一个元素

可能未被实现

removeAll

删除一批元素

可能未被实现

retainAll

删除除了一批元素外的所有元素

可能未被实现

size

容器中元素个数

<o:p></o:p>

toArray

返回一个含所有元素的array

<o:p></o:p>

max,min

取得最大、最小值

<o:p></o:p>

copy

从一个容器复制到另一个容器

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

4 Key/Vaue对

   DELPHI

          var sl :TStringList;

          sl.Values[&#039;key&#039;] := &#039;value&#039;;

   JAVA             HashMap (TreeMap,WeakHaspMap)

          TreeMap可排序,但性能较差。可以返回在一定大小范围内元素的子集。

          HashMap性能好,不可排序。需要提供hashCode、equals等函数。

          WeakHaspMap似乎可以节省内存空间。

5 多线程同步

   JAVA

          Collection c = Coolections. synchronizedCollection(new ArrayList());

          List l = Coolections. synchronizedList(new ArrayList());

          Set s = Coolections. synchronizedSet(new HashSet());

          Map c = Coolections. synchronizedMap(new HashMap());

6 文件操作

   DELPHI

          var fin :TFileStream;

   JAVA             1 InputStream / OutputStream

   JAVA             2 RandomAccessFile

7 目录操作

   DELPHI

          FindFirst,etc.

   JAVA             File

          String[] list = path.list( new FilenameFilter() {

                 public boolean accept(File dir, String s) {

                        String f = new File(s).getName();

                        return f.indexOf(filter)!=-1;

                 }       //这儿是一个内嵌类(inner class)

          });

          File类提供下列函数:getAbsolutePath, getName, getPath, length, lastModified, renameTo, mkdirs, isFile, isDirectory, exists,delete等。

<o:p></o:p>

8 压缩

   DELPHI

          zlib.pas

   JAVA             ZipInputStream / ZipOutputStream

<o:p></o:p>

9 RTTI

   DELPHI

          is, as ,className,typInfo.pas

   JAVA

          instanceof或isInstance()相当于DELPHI中的is

          Class.forName(&quot;AClass&quot;) 相当于 AClass.class

          对于外覆类例如Integer,其Integer.TYPE 等同于 integer.class

          Class.forName(&quot;AClass&quot;).newInstance()可以产生一个新对象(该类必须具有缺省构造函数)。

          java.lang.reflect提供Field, Method. Constructor等类。

10 跳出嵌套循环

   DELPHI

          goto

   JAVA

          label1:

          for (int i=0; i&lt;10; i++)

          for (int j=0; j&lt;10; j++)

          {

                 continue label1;    //跳转到label1,循环继续执行

                 break label1;           //跳转到label1,循环中止执行

          }&lt;o:p&gt;&lt;/o:p&gt;

<o:p></o:p>

<o:p></o:p>

测试:

   建议在编写程序时同时编写测试代码。

<o:p></o:p>

其他常用函数:

函数功能

DELPHI

JAVA

输出调试信息

writeln

System.out.println()

随机函数

random

Math.random()

字符串转换为整数

原文来自: 【100脚本网 www.pc100.net】


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明代码从DELPHI语言到JAVA语言[delphi]
喜欢 (0)
[开心洋葱]
分享 (0)
水墨上仙
关于作者:
水墨上仙
……