import java.util.*;
public class A
{
public static void main(String [] args)
{
String [] s = {"01","02.01","01.01","02.01.01"};
LinkedList<String>ls=new LinkedList<String>();
for(int i=0;i<s.length;i++)
ls.add(s[i]);
for(int i=0;i<ls.size()-1;i++)
for(int j=i+1;j<ls.size();j++)
{
if(ls.get(j).indexOf(ls.get(i))==0)
{
ls.remove(j);
j=i;
continue;
}

}
for(int i=0;i<ls.size();i++)
{
System.out.println(ls.get(i));
}
}
}

解决方案 »

  1.   

    LinkedList<String> ls = new LinkedList<String>();是什么意思?有错误啊
      

  2.   

    对了,你的jdk的需要1.5的。
    1.5以下的也可以,不过的修改一下。就是不能自动装箱,和自动解箱了。
      

  3.   

    jdk1.4用的。
    import java.util.*;
    public class A
    {
    public static void main(String [] args)
    {
    String [] s = {"01","02.01","01.01","02.01.01"};
    LinkedList ls=new LinkedList();
    for(int i=0;i<s.length;i++)
    ls.add(s[i]);
    for(int i=0;i<ls.size()-1;i++)
    for(int j=i+1;j<ls.size();j++)
    {
    if(((String)ls.get(j)).indexOf((String)ls.get(i))==0)
    {
    ls.remove(j);
    j=i;
    continue;
    }

    }
    for(int i=0;i<ls.size();i++)
    {
    System.out.println((String)ls.get(i));
    }
    }
    }
      

  4.   

    faen(发恩):多谢了,单独运行没问题,我应用到项目中再测试一下。
      

  5.   

    String [] s = {"01","02.01","01.01","02.01.01"};
    如果s数组变成 List list呢?怎么处理?谢谢了!!!
      

  6.   

    faen(发恩) :只要问题解决了,分不是问题
      

  7.   

    for (int i = 0 ; list != null && i < list.size(); i++){
              Taster taster = (Taster) list.get(i);
              Category category = taster.getCategory();
              String name = category.getName();
              String id = category.getCategoryid();          ls.add(list[i]);
            }
    这样的话,怎样加入到ls中?
      

  8.   

    如果数组变成list了,那就更好了,就不用
    LinkedList ls=new LinkedList();
    for(int i=0;i<s.length;i++)
        ls.add(s[i]);
    这个的作用本身就是把数组变成list.另外:
    for (int i = 0 ; list != null && i < list.size(); i++){
              Taster taster = (Taster) list.get(i);
              Category category = taster.getCategory();
              String name = category.getName();
              String id = category.getCategoryid();          ls.add(list[i]);
            }
    这样的话,怎样加入到ls中?这个没有看懂什么意思啊?
      

  9.   

    List list = session.find(hsql);
          String[] str = new String[list.size()];
          for (int i = 0 ; list != null && i < list.size(); i++){
            Taster taster = (Taster) list.get(i);
            Category category = taster.getCategory();
            String name = category.getName();
            String id = category.getCategoryid();
            str[i] = id;
            namerole = name;
            
          }
          
    我这样把id的值赋给str数组,然后再执行那段程序,就不行了,没有判断包含关系,已经晕了,多执教
      

  10.   

    String id = category.getCategoryid();
    str[i] = id;这段程序,你能保证id不等于null吗?
      

  11.   

    能保证,str数组里肯定有值,然后套用你那个算法,该是什么值还是什么值,没有判断包含关系
      

  12.   

    List list = session.find(hsql);
          String[] str = new String[list.size()];
          for (int i = 0 ; list != null && i < list.size(); i++){
            Taster taster = (Taster) list.get(i);
            Category category = taster.getCategory();
            String name = category.getName();
            String id = category.getCategoryid();
            str[i] = id;
            namerole = name;
            
          }
                
          //String[] s = {"01", "02.01", "01.01", "02.01.01"};
          LinkedList ls = new LinkedList();
          for (int i = 0; i < str.length; i++)
            ls.add(str[i]);
          for (int i = 0; i < ls.size() - 1; i++)
            for (int j = i + 1; j < ls.size(); j++) {
              if (((String) ls.get(j)).indexOf((String) ls.get(i)) == 0) {
                ls.remove(j);
                j = i;
                continue;
              }
        
            }
          for (int i = 0; i < ls.size(); i++) {
            System.out.println((String) ls.get(i));
          }
    我是这样写的,帮忙看看
      

  13.   

    你说没有判断包含关系是什么意思?List list = session.find(hsql);
          String[] str = new String[list.size()];
          for (int i = 0 ; list != null && i < list.size(); i++){
            Taster taster = (Taster) list.get(i);
            Category category = taster.getCategory();
            String name = category.getName();
            String id = category.getCategoryid();
            str[i] = id;
            namerole = name;
            
          }       //加上这条语句你看看你的数组有没有问题。
          for(int i=0;i<str.length;i++)
             System.out.println(str[i]);      //String[] s = {"01", "02.01", "01.01", "02.01.01"};
          LinkedList ls = new LinkedList();
          for (int i = 0; i < str.length; i++)
            ls.add(str[i]);
          for (int i = 0; i < ls.size() - 1; i++)
            for (int j = i + 1; j < ls.size(); j++) {
              if (((String) ls.get(j)).indexOf((String) ls.get(i)) == 0) {
                ls.remove(j);
                j = i;
                continue;
              }
        
            }
          for (int i = 0; i < ls.size(); i++) {
            System.out.println((String) ls.get(i));
          }
      

  14.   

    我加了,数组没问题。
    就是str数组如果是{"01", "02.01", "01.01", "02.01.01"};经过算法之后,输出的还是{"01", "02.01", "01.01", "02.01.01"};
      

  15.   

    for (int i = 0; i < ls.size(); i++) {
            System.out.println((String) ls.get(i));
          }
    可能是这样的,注意结果是存在ls里的,str数组当然不会变化。
    你返回的是str数组吗????
    应该将ls重新构造一个新的数组,返回
      

  16.   

    for (int i = 0; i < ls.size(); i++) {
            System.out.println((String) ls.get(i));
          }不是的,这个打印结果就是{"01", "02.01", "01.01", "02.01.01"};没有变化
      

  17.   

    List list = session.find(hsql);
          String[] str = new String[list.size()];
          for (int i = 0 ; list != null && i < list.size(); i++){
            Taster taster = (Taster) list.get(i);
            Category category = taster.getCategory();
            String name = category.getName();
            String id = category.getCategoryid();
            str[i] = id;
            namerole = name;
            
          }  
          //换成这条语句,你看看结果。
          s = {"01", "02.01", "01.01", "02.01.01"};
          LinkedList ls = new LinkedList();
          for (int i = 0; i < str.length; i++)
            ls.add(str[i]);
          for (int i = 0; i < ls.size() - 1; i++)
            for (int j = i + 1; j < ls.size(); j++) {
              if (((String) ls.get(j)).indexOf((String) ls.get(i)) == 0) {
                ls.remove(j);
                j = i;
                continue;
              }
        
            }
          for (int i = 0; i < ls.size(); i++) {
            System.out.println((String) ls.get(i));
          }
      

  18.   

    List list = session.find(hsql);
          String[] str = new String[list.size()];
          for (int i = 0 ; list != null && i < list.size(); i++){
            Taster taster = (Taster) list.get(i);
            Category category = taster.getCategory();
            String name = category.getName();
            String id = category.getCategoryid();
            str[i] = id;
            namerole = name;
            
          }  
          //换成这条语句,你看看结果。
          str = {"01", "02.01", "01.01", "02.01.01"};
          LinkedList ls = new LinkedList();
          for (int i = 0; i < str.length; i++)
            ls.add(str[i]);
          for (int i = 0; i < ls.size() - 1; i++)
            for (int j = i + 1; j < ls.size(); j++) {
              if (((String) ls.get(j)).indexOf((String) ls.get(i)) == 0) {
                ls.remove(j);
                j = i;
                continue;
              }
        
            }
          for (int i = 0; i < ls.size(); i++) {
            System.out.println((String) ls.get(i));
          }