Java:如何在ArrayList中将整数插入HashSet?

时间:2016-10-08 18:54:10

标签: arraylist insert user-input hashset

如何在不覆盖它的情况下将整数插入ArrayList中的HashSet?

出于某种原因,该方法使用userInput值而不是ArrayList index中的HashSet更新我的ArrayList中的所有 HashSet。

方法的一部分:

  case 15:
    System.out.println("\n=== ArrayList Test ===\n");
    ArrayListOfHashSet arrayList = new ArrayListOfHashSet();

    // System.out.println("Enter size of ArrayList of HashSet: ");
    // int size = scanner.nextInt();
    ArrayList<HashSet<Integer>> arrayListOfHashSet = new ArrayList<HashSet<Integer>>(81);
    HashSet<Integer> sets = new HashSet<Integer>();

    for (int i = 0; i < 81; i++) {
      arrayListOfHashSet.add(sets);
    }

    do {
      System.out.println("1. insert value to ArrayList node");
      System.out.println("2. remove value from ArrayList node");
      System.out.println("3. empty");
      System.out.println("4. print");

      int choice = scanner.nextInt();
      switch (choice) {
      case 1:
        arrayList.insert(scanner, arrayListOfHashSet);
        break;

      case 2:
        arrayList.remove(scanner, arrayListOfHashSet);
        break;

      case 3:
        arrayList.empty(scanner, arrayListOfHashSet);
        break;

      case 4:
        System.out.println(Arrays.toString(arrayListOfHashSet.toArray()));
        break;
      }

      System.out.println("\nDo you want to continue? (y or n) \n");
      c = scanner.next().charAt(0);
    } while ((c == 'Y' || c == 'y') && (c != 'N' || c != 'n'));
    break;

我的插入方法:

  public void insert(Scanner scanner, ArrayList<HashSet<Integer>> arrayListOfHashSet) {
    System.out.print("Please enter an index: ");
    int index = scanner.nextInt();

    HashSet<Integer> hashSet = arrayListOfHashSet.get(index);

    System.out.print("Please enter a value: ");
    int userInput = scanner.nextInt();

    hashSet.add(userInput);
    arrayListOfHashSet.set(index, hashSet);
  }

1 个答案:

答案 0 :(得分:0)

function convertXML(xml, textStatus, jqxhr) {
  var xmlObj = xmlToJson(jqxhr.responseXML)
               .query.results.WMS_Capabilities;
  console.log("convertXML");

  if (typeof xmlObj != 'undefined') {
      createData(xmlObj);
  }
}

function createData(xmlObj){
  for (var i = 0; i < xmlObj.Capability.Layer.Layer.length; i++){
      var row = xmlObj.Capability.Layer.Layer[i];
      WMSLayers.push(row);
   };
   console.log("createdata",WMSLayers)
   finish();
}

$.get("/path/to/resource",  convertXML, "xml")
.fail(function(jqxhr, textStatus, errorThrown) {
  console.log(errorThrown)
});

将HashSet的相同实例添加到arrayList的所有索引。由于这是一个引用,它与所有索引中的哈希值相同。

您必须将 HashSet<Integer> sets = new HashSet<Integer>(); for (int i = 0; i < 81; i++) { arrayListOfHashSet.add(sets); } 更改为arrayListOfHashSet.add(sets);