java写的StringList类
2008-02-23 09:37:29来源:互联网 阅读 ()
Delphi的StringList类真好用啊 试着用Java写了一个
package com.zhao_yi.sysutils.classes;
import java.util.List;
import java.util.ArrayList;
import java.util.StringTokenizer;
import com.zhao_yi.sysutils.SysUtil;
import com.zhao_yi.sysutils.*;
import java.util.Arrays;
import java.util.*;
public class StringList {
private List strings = new ArrayList();
private List objects = new ArrayList();
private boolean sorted = false;
public StringList() {
}
public String[] getStrings() {
return (String[])strings.toArray(new String[strings.size()]);
}
public void setStrings(String[] array){
strings = null; objects=null;
strings = new ArrayList(Arrays.asList(array));
objects = new ArrayList(array.length);
}
private void rangeCheck(int Index) throws IndexOutOfBoundsException {
if ((Index < 0) || (Index >= getCount()))
throw new IndexOutOfBoundsException();
}
public int getCount() {
return strings.size();
}
public String Get(int Index){
return (String) strings.get(Index);
}
public int Find(String S) {
int I, L, H, C;
L = 0;
H = getCount() - 1;
while (L <= H) {
I = (L H) / 2;
C = SysUtil.CompareStrings(Get(I), S);
if (C < 0)
L = I 1;
else {
H = I - 1;
if (C == 0)
L = I;
}
}
return L;
}
public int AddObject(String S, Object AObject) {
int Result = -1;
if (!sorted)
Result = getCount();
else
Result = Find(S);
InsertItem(Result, S, AObject);
return Result;
}
public int Add(String S) {
return AddObject(S, null);
}
public void AddStrings(StringList Strings) {
for (int i = 0; i < Strings.getCount(); i )
Add(Strings.Get(i));
}
public void AddStrings(String[] Strings) {
for (int i = 0; i < Strings.length; i )
Add(Strings[i]);
}
public void Clear() {
strings.clear();
objects.clear();
}
public void Delete(int Index){
strings.remove(Index);
objects.remove(Index);
}
public void InsertItem(int Index, String S, Object AObject) {
strings.add(Index, S);
objects.add(Index, AObject);
}
public void Put(int Index, String S) throws IllegalStateException{
if (this.sorted)
throw new IllegalStateException("list sorted!");
else
strings.set(Index, S);
}
public void PutObject(int Index, Object AObject) {
objects.set(Index, AObject);
}
public void Exchange(int Index1, int Index2) {
Object temp = null;
temp = strings.get(Index1);
strings.set(Index1, strings.get(Index2));
strings.set(Index2, temp);
temp = objects.get(Index1);
objects.set(Index1, objects.get(Index2));
objects.set(Index2, temp);
}
public void QuickSort(int L, int R) {
if (L < R) {
int i = L;
int j = R;
String S = Get(L);
while (i < j) {
while (SysUtil.CompareStrings(Get(i), S) <= 0)
i ;
while (SysUtil.CompareStrings(Get(j), S) > 0)
j--;
if (i < j)
Exchange(i, j);
}
Exchange(i, L);
if (L < j)
QuickSort(L, j);
if (i < R)
QuickSort(i, R);
}
}
public void SetSorted(boolean value) {
if (value != sorted) {
if (value)
QuickSort(0, getCount() - 1);
sorted = value;
}
}
public int IndexOf(String S) {
return strings.indexOf(S);
}
public String getTextStr() {
StringBuffer Result = new StringBuffer();
for (int i = 0; i < strings.size(); i ) {
Result.append(Get(i));
Result.append(Systems.lineseparator);
}
return Result.toString();
}
public void setTextStr(String value) {
Clear();
StringTokenizer tokenizer = new StringTokenizer(value, Systems.lineseparator);
while (tokenizer.hasMoreTokens())
Add(tokenizer.nextToken());
}
}
上一篇: lomboz 3.0.1 中启动tomcat的问题
下一篇: Tomcat性能调整
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Tomcat性能调整
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash