Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 集合中的树集_Java_Arraylist_Treeset - Fatal编程技术网

Java 集合中的树集

Java 集合中的树集,java,arraylist,treeset,Java,Arraylist,Treeset,我已经开始在java中实现TreeSet。 我想知道,是否有可能在一个集合中创建一个集合 例如,我需要创建一个集合来提供输出 {{1,2,3,4,5,6,7,8},(1,{1,2,3,4,5,6,7,8})} 问题是我无法将add添加到集合中以提供所需的输出。 我甚至尝试将我的树集放入数组列表中 ArrayList<TreeSet<Integer>> SET = new ArrayList<TreeSet<Integer>>(); ArrayL

我已经开始在
java
中实现
TreeSet
。 我想知道,是否有可能在一个集合中创建一个集合

例如,我需要创建一个集合来提供输出

{{1,2,3,4,5,6,7,8},(1,{1,2,3,4,5,6,7,8})}
问题是我无法将add添加到集合中以提供所需的输出。 我甚至尝试将我的
树集
放入
数组列表

ArrayList<TreeSet<Integer>> SET = new ArrayList<TreeSet<Integer>>();
ArrayList SET=new ArrayList();
这仍然不能给出我想要的结果,并且使我的代码变得非常复杂

如您所见,输出有两个集合,它们基本上是较大集合的元素

请问有人能帮忙吗

我不是只要求代码建议

TreeSet
需要在
T
上安装一个比较器,以便排列其中的元素。您可以使用“了解”如何比较
TreeSet
s的自定义比较器来切割
TreeSet
。这将使外部树集决定您放入其中的树集的顺序:

TreeSet<TreeSet<Integer>> outer = new TreeSet<TreeSet<Integer>>(
    new Comparator<TreeSet<Integer>>() {
        public int compare(TreeSet<Integer> lhs, TreeSet<Integer> rhs) {
            Iterator<Integer> li = lhs.Iterator();
            Iterator<Integer> ri = rhs.Iterator();
            while (li.hasNext() && ri.hasNext()) {
                int res = li.next().compareTo(ri.next());
                if (res != 0) return res;
            }
            if (li.hasNext()) return 1;
            if (ri.hasNext()) return -1;
            return 0;
        }
    }
);
TreeSet-outer=新树集(
新比较器(){
公共整数比较(树集lhs、树集rhs){
迭代器li=lhs.Iterator();
迭代器ri=rhs.Iterator();
while(li.hasNext()&&ri.hasNext()){
int res=li.next().compareTo(ri.next());
如果(res!=0)返回res;
}
if(li.hasNext())返回1;
if(ri.hasNext())返回-1;
返回0;
}
}
);
TreeSet
需要在
T
上安装一个比较器,以便排列其中的元素。您可以使用“了解”如何比较
TreeSet
s的自定义比较器来切割
TreeSet
。这将使外部树集决定您放入其中的树集的顺序:

TreeSet<TreeSet<Integer>> outer = new TreeSet<TreeSet<Integer>>(
    new Comparator<TreeSet<Integer>>() {
        public int compare(TreeSet<Integer> lhs, TreeSet<Integer> rhs) {
            Iterator<Integer> li = lhs.Iterator();
            Iterator<Integer> ri = rhs.Iterator();
            while (li.hasNext() && ri.hasNext()) {
                int res = li.next().compareTo(ri.next());
                if (res != 0) return res;
            }
            if (li.hasNext()) return 1;
            if (ri.hasNext()) return -1;
            return 0;
        }
    }
);
TreeSet-outer=新树集(
新比较器(){
公共整数比较(树集lhs、树集rhs){
迭代器li=lhs.Iterator();
迭代器ri=rhs.Iterator();
while(li.hasNext()&&ri.hasNext()){
int res=li.next().compareTo(ri.next());
如果(res!=0)返回res;
}
if(li.hasNext())返回1;
if(ri.hasNext())返回-1;
返回0;
}
}
);

您对泛型的使用让您感到困惑

这:
ArrayList SET=new ArrayList()

不会在列表中列出列表

为此,您需要执行以下操作:

TreeSet s = new TreeSet();
TreeSet subset = new TreeSet();
s.add(subset);

你对泛型的使用让你感到困惑

这:
ArrayList SET=new ArrayList()

不会在列表中列出列表

为此,您需要执行以下操作:

TreeSet s = new TreeSet();
TreeSet subset = new TreeSet();
s.add(subset);

编写自己的
toString()
以创建所需的输出格式。编写自己的
toString()
以创建所需的输出格式。这对我试图实现的目标非常有用。我明白我做错了什么,哈哈。谢谢你的帮助:)这对我想要实现的目标很有帮助。我明白我做错了什么,哈哈。谢谢你的帮助:)