让ArrayList.get()返回

时间:2014-10-23 03:26:34

标签: java

我目前正在尝试编写一个简单的函数来转换整数,反之亦然,写一个3位二进制字符串,填充为零。为了测试intToBinary方法,我创建了一个简单的循环,添加整数1到5并将每个数字转换为二进制字符串,然后将这些二进制字符串组合成一个更大的字符串。

  ArrayList cityList = new ArrayList();
  String gene = "";
  for(int i = 1; i<5;i++){
    cityList.add(i, i);
    gene += intToBinary(i);
    System.out.println(gene + "" + cityList.get(i));
  }
  System.out.println(gene);

当我尝试运行这一小段代码时,我在cityList.get(i)收到错误 Object.get(i)方法不应该在索引i返回变量吗? 我尝试通过int初始化另一个int cityNum = (int)cityList.get(i),但收到的错误是找到了Object而不是int

Object.add(int index, Object)中使用的变量类型为int,因此get方法应返回int变量。

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你可以用

之类的东西来做
for (int i = 0; i < Math.pow(2, 3); i++) {
    StringBuilder sb = new StringBuilder(Integer.toBinaryString(i));
    while (sb.length() < 3) {
        sb.insert(0, '0');
    }
    System.out.printf("%d = %s%n", i, sb.toString());
}

输出

0 = 000
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
6 = 110
7 = 111

反之亦然,您可以使用Integer.parseInt(String,int)之类的

int val = Integer.parseInt("001", 2); // <-- 1