我正在尝试理解Java Iterator和Iterable接口
我正在写这门课
class MyClass implements Iterable<String> {
public String[] a = null;
public MyClass(String[] arr) {
a = arr;
}
public MyClassIterator iterator() {
return new MyClassIterator(this);
}
public class MyClassIterator implements Iterator<String> {
private MyClass myclass = null;
private int count = 0;
public MyClassIterator(MyClass m) {
myclass = m;
}
public boolean hasNext() {
return count < myclass.a.length;
}
public String next() {
int t = count;
count++;
return myclass.a[t];
}
public void remove() …Run Code Online (Sandbox Code Playgroud) 假设我们有一个整数bitsize n=4;
我正在描述的问题是如何根据汉明权重及其知道的值来将数字索引到数组位置bitsize.例如,具有16个用于bitsize 4的元素的数组将/可能如下所示:
|0|1|2|4|8|3|5|6|9|10|12|7|11|13|14|15|
Run Code Online (Sandbox Code Playgroud)
元素按其汉明重量(必要)分组,并根据大小排序(不必要).只要您可以采取例如3(0011)进行一些操作并返回索引5,5(0101) - > 6等,则不需要排序.
n将存在所有位组合,并且不会重复.例如bitsize 3将有数组:
|0|1|2|4|3|5|6|7|
Run Code Online (Sandbox Code Playgroud)
我最好有一个没有循环的解决方案.或任何讨论simillar解决方案的论文.或者最后只是抛出任何关于如何做到这一点的想法.