FastCat 2.4 build: 9639 released: 2014-09-07 compiled with: Java 1.8.0_131 Streamlined Replacement for StringBuilder. Copyright: (c) 2009-2017 Canadian Mind Products. Java class library. Download from: http://mindprod.com/products1.html#FASTCAT ---- Notes: You must install the Java JDK to use this program. See http://mindprod.com/jgloss/jgloss/jdk.html You are pretty much on your own how to use this material. This program requires a manual install! See below. I put out an avalanche of free software into the world, and submit PAD files to hundreds of distribution sites, but I rarely hear back from anyone. What's happening? Does it all just work fine? It is so complicated nobody can figure out how to use it and they give up on it? It is it useful? Since everyone has the source, do people just fix the programs to their liking themselves? Did you have trouble installing? Do I presume you know too much? I would be happy to hear from you about your experiences, positive or negative and your requests for improvements. A one-line email to roedy@mindprod.com would be great. ===> Free <=== Full source included. You may even include the source code, modified or unmodified in free/commercial open source/proprietary programs that you write and distribute. May be used freely for any purpose but military. For more details on this restriction, see http://mindprod.com/contact/nonmil.html If you include any Canadian Mind Products code in your own applications, your app too must be labelled non-military use only. http://mindprod.com/contact/nonmil.html All Java jars and source code are included. If you need the class files or Javadoc, you will have to build them yourself. To streamline the zip downloads, class files and Javadoc have been removed. ---- Prerequisites: This program runs under any OS that supports Java, (e.g.W2K/XP/W2003/Vista/W2008/W7-32/W7-64/W8-32/W8-64/Linux/LinuxARM/LinuxX86 /LinuxX64/Ubuntu/Solaris/SolarisSPARC/SolarisSPARC64/SolarisX86/SolarisX64/OSX/AIX...) so long as you have <><> Java version 1.8 <><> or later installed (32-bit or 64-bit Java). See http://mindprod.com/jgloss/installingjava.html for details. ---- Installing on a PC: Download source and compiled jar files to run on your own machine as a part of your own program. First install a recent Java JDK or JVM. See http://mindprod.com/jgloss/installingjava.html. To install, extract the zip download with WinZip (or similar unzip utility) into any directory you please, often J:\ -- ticking off the use folder names option. ---- Installing on a MacIntosh: Use Safari to download source and compiled jar files to run on your own machine as a part of your own program. Safari will automatically unpack the zip into ~/Downloads (version 10.5) [or on the Desktop (version 10.4 and earlier)]. First install a recent Java JDK or JVM. See http://mindprod.com/jgloss/installingjava.html. You may optionally move the download tree to a permanent home. I don't have a MacIntosh, just a PC, so I can't test my Java programs for Mac compatibility. In theory they should work without problems, but in practice that does not always happen. If you have problems please, let me know, preferably with screenshots and complete verbatim error messages. ---- Rebuilding: You are pretty much on your own how to use this material. ---- Use: FastCat is a streamlined speedy version of StringBuffer/StringBuilder that is more efficient because it does not allocate a buffer until the very last minute, and allocates it the exact size needed. You use it in writing your own Java Programs. It works very similarly to StringBuilder, so the Javadoc should be all you need. FastCat is null-safe. If you pass a null or a 0-length string to one of the .append methods it does nothing. This means you can streamline your application code. You don't have to explicitly avoid appending nulls, an error that can slip through testing with StringBuilder since it may occur only rarely. FastCat does not work well if you append one character at a time to your FastCat. For that sort of application, use the traditional StringBuilder. FastCat works very quickly with minimal RAM usage if you can accurately predict roughly how many chunks you will append but have only a vague idea of the final total size. By minimising RAM usage, your garbage collection occurs less frequently, which speeds it up. I got a 10% speedup when I switched over the HTMLMacros app to use it. The basic idea of FastCat is you estimate how many chunks you concatenate, not the length of the output. ---- Version History: 1.0 2009-09-29 initial release 1.1 2009-10-09 return this from append 1.2 2010-01-25 fix bug in rarely used clear method. 1.3 2010-02-13 convert from JDK 1.6 to JDK 1.5 1.4 2011-06-08 add room, size, used methods 1.5 2011-11-13 append methods now ignore null parameters 1.6 2011-11-19 checkEstimate method to get advance warning an estimate is too tight or too generous. 1.7 2012-11-19 add the drop method to drop last appended String. e.g. to trim last comma. 1.8 2013-03-12 add toCommaList 1.9 2013-04-10 add toSpaceList and toSeparatedList 2.0 2014-03-22 handle null in Object..., add setPolicy to allow recover 2.1 2014-04-16 new constructor to build a string all in one line 2.2 2014-04-29 methods to insert separators, toSeparatedList 2.3 2014-07-02 slightly different way of calculating when space is getting tight or is too generous. setWhereTextCameFrom to help locate problems. 2.4 2014-09-07 add toAndList to produce an comma list with the word and. -30-