Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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_Data Structures - Fatal编程技术网

Java 寻找数据结构

Java 寻找数据结构,java,data-structures,Java,Data Structures,正在查找具有以下属性的数据结构: 像数组一样固定大小。 不能包含与HashSet相同的元素。 能够从任何位置删除元素,如ArrayList中的E removeint i。 将元素设置在任何位置,但仅当它为空时,否则将引发异常。 有这样的数据结构吗?或者我需要自己实现?可能是一个带有T[]和HashSet的类。如果HashSet包含要添加的元素,则它是重复的。如果T[]具有非null或任何您标记的值,则该元素被占用。要删除,需要从两个数据结构中删除。可以通过T[]限制大小 这样,所有4个操作都将是

正在查找具有以下属性的数据结构:

像数组一样固定大小。 不能包含与HashSet相同的元素。 能够从任何位置删除元素,如ArrayList中的E removeint i。 将元素设置在任何位置,但仅当它为空时,否则将引发异常。 有这样的数据结构吗?或者我需要自己实现?

可能是一个带有T[]和HashSet的类。如果HashSet包含要添加的元素,则它是重复的。如果T[]具有非null或任何您标记的值,则该元素被占用。要删除,需要从两个数据结构中删除。可以通过T[]限制大小

这样,所有4个操作都将是O1次。

您可以使用Arrays.asList执行此操作:

这是一个由数组支持的固定大小的数据结构。 可以使用list.seti,null将元素设置为null 您可以使用list.containseElement检查列表中是否已包含元素。这将线性检查内容;我假设这个列表会很小,所以在实践中这是很好的。 例如:

List<Integer> ints = Arrays.asList(new Integer[5]);

// Unset the value in the second slot, if it is non-null.
if (ints.get(2) != null) {
  ints.set(2, null);
}

// Add 123 to the first slot which is null.
if (!ints.contains(123)) {
  ints.set(ints.indexOf(null), 123);
}

所以你想要固定的尺寸。。。但有能力删除或添加元素@Tunaki他不想添加或删除元素,他想添加或删除给定位置的元素。换句话说,数组的作用是什么。@nhouser9因为3与1冲突,所以没有明确或简单的说明。3并没有说清除给定索引处的值,而是像ArrayList中的removeint i一样。所以不是同一件事!这不是添加元素,而是设置元素。相反,设置为null并不是在ArrayList中删除类似removeint i的元素。如果这是OP的要求,那么一个简单的数组已经做到了,就像你说的那样。@Tunaki显然错了。数组不满足2或4。所以说得清楚一点,你的反对票是基于这样一个事实,OP对添加和设置以及元素的定义有一点混淆?这真的足以让问题变得不清楚/无法解决?为什么是HashMap而不是HashSet?地图值用于什么?@Andreas true。。。我认为出于某种原因,它会很有用,可能是通过值而不是索引进行删除。那么您对这些问题的答案是有这样的数据结构吗?还是我需要实现自己?是不是?如果是这样的话,也许你真的应该回答这些问题。