java从用户输入生成ID

时间:2015-03-28 09:22:20

标签: java arrays list

Java世界的新手。

如何将用户输入分配到ID数组? (例如,第一个id是1,然后是2,3,依此类推)

对象的LinkedList?例如cat

要求用户输入cat的类型并将其分配给唯一ID。

如何在创建后搜索ID?

LinkedList<Cat> cats = new LinkedList<Cat>();

3 个答案:

答案 0 :(得分:2)

当需要具有唯一ID时,最简单的方法是使用GUID(全局唯一标识符)。有关唯一GUID的一些示例:

3c991b3e-1396-4182-9663-a24b3bc7f1b1
effa71c0-d657-4161-9bd9-aff7ccb545b3
dfb20317-3d70-4ec9-8d9a-d3cdc9895bdf
4f78c930-5ba6-4e45-a659-ac7e5eab6177

这些在数学上被证明在系统中是独一无二的。阅读维基百科上的about GUIDs以及duplications: “只有在未来100年内每秒产生10亿UUID之后,创建一个副本的可能性大约为50%。”

要执行此操作,请使用java内部UUID类。至于猫的例子,请执行:

public Cat(/*constructor arguments here*/) {
  this.id = UUID.randomUUID();
}

答案 1 :(得分:1)

你可以做以下两件事之一:

  1. 使用ArrayList并将索引作为您的唯一ID。
  2. 向Cat添加一个唯一ID字段,并让Cat的静态成员存储最后一个给定ID。这样,每个元素都将收到一个唯一的ID。然后,您可以按ID搜索元素。
  3. (2)的示例代码:

    public class Cat {
    
         private static int counter = 0;
    
         private final int id;
         //.. other private fields
    
         public Cat(/*constructor arguments here*/) {
             this.id = counter++;
             //other constructor code
         }
    
         //Cat class implementation
    
    }
    

答案 2 :(得分:0)

我不建议使用LinkedList。要拥有链接到对象的唯一ID,可以使用HashMap。它基本上是一个键值映射,不允许重复键。

示例:

Map<Integer, Cat> cats = new HashMap<Integer, Cat>();
cats.put(1, cat01);
cats.put(2, cat02);
Cat cat01 = cats.get(1);