快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

java写的StringList类

 

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());
  }


}





返回类别: 教程
上一教程: Java中对文件的读写操作之比较
下一教程: 用JAVA转变简繁体的基础知识 (不用对照表,用算法实现)

您可以阅读与"java写的StringList类"相关的教程:
· JAVA写的简朴UBB类
· java:自己写的实现翻页功能的类
· JAVA写的四则混合运算
· JAVA代码编写的30条建议 选择自 chinaewolf 的 Blog
· 初学Java写的第一个多线程程序
    微笑服务 优质保证 索取样品