如何将此arraylist从整数更改为十六进制?

时间:2016-09-26 17:46:06

标签: java arraylist

我想创建一个arraylist,然后创建一个新的数组,其中所有数字都更改为十六进制。这是我的代码,但是当它应该打印十六进制版本时,它只是空白。

import java.util.Arrays;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Collections;


public class exp2{
  public static void main(String[] args){
    ArrayList<Integer> digits = new ArrayList<Integer>();
    digits.add(3);
    digits.add(1,8); //at index 1, add an 8 
    System.out.println(digits);

    ArrayList<Integer> dubs = new ArrayList<Integer>();
    Scanner s = new Scanner(System.in);

    while (s.hasNextInt()){
      dubs.add(s.nextInt());
    }
    while(!s.hasNextInt()){
      Collections.sort(dubs);
      System.out.println(dubs);
      break;
      }




  ArrayList<String> dubstoHex = new ArrayList<String>();
  int i;
  for (i = 0; i < dubstoHex.size(); i++){
    String.format("0x%08X", i);
  }
  System.out.println(dubstoHex);
  }

}

我尝试在之后引用“dubs”,但是这会打败编译器。我也尝试将dubs.get(i)作为String.format中的第二个参数......但是这两个都没有。

1 个答案:

答案 0 :(得分:1)

这是我认为你想要做的更简单的版本:

public class FunctionalHex {
    public static void main(String[] args) {
        List<Integer> l = Arrays.asList(3, 1, 8);
        List<String> hex = l.stream().map(i -> String.format("0x%08X", i)).collect(Collectors.toList());

        System.out.println(hex);
    }
}