我们创建一个Set为:

Set myset = new HashSet()

我们如何在Java中创建一个列表?


当前回答

有很多方法可以创建Set和List。HashSet和ArrayList就是两个例子。现在在集合中使用泛型也相当普遍。我建议你看看它们是什么

这是对java内置集合的一个很好的介绍。http://java.sun.com/javase/6/docs/technotes/guides/collections/overview.html

其他回答

List和Set一样只是一个接口。

HashSet是Set的一种实现,它具有添加/查找/删除性能方面的某些属性,ArrayList是List的裸实现。

如果你看了相关接口的文档,你会发现“所有已知的实现类”,你可以决定哪一个更适合你的需求。

可能是数组列表。

//simple example creating a list form a string array

String[] myStrings = new String[] {"Elem1","Elem2","Elem3","Elem4","Elem5"};

List mylist = Arrays.asList(myStrings );

//getting an iterator object to browse list items

Iterator itr= mylist.iterator();

System.out.println("Displaying List Elements,");

while(itr.hasNext())

  System.out.println(itr.next());

一个例子:

List somelist = new ArrayList();

您可以查看javadoc for List,并找到包含在java api中的List接口的所有已知实现类。

你可以在这里使用双大括号初始化:

List<String> list = new ArrayList<String>(){
  {
   add("a");
   add("b");
  }
};

使用Eclipse Collections,你可以创建一个这样的List:

List<String> list1 = Lists.mutable.empty();
List<String> list2 = Lists.mutable.of("One", "Two", "Three");

如果你想要一个不可变列表:

ImmutableList<String> list3 = Lists.immutable.empty();
ImmutableList<String> list4 = Lists.immutable.of("One", "Two", "Three");

您可以通过使用原语列表来避免自动装箱。下面是创建int列表的方法:

MutableIntList list5 = IntLists.mutable.empty();
MutableIntList list6 = IntLists.mutable.of(1, 2, 3);

ImmutableIntList list7 = IntLists.immutable.empty();
ImmutableIntList list8 = IntLists.immutable.of(1, 2, 3);

所有8个原语都有变体。

MutableLongList longList       = LongLists.mutable.of(1L, 2L, 3L);
MutableCharList charList       = CharLists.mutable.of('a', 'b', 'c');
MutableShortList shortList     = ShortLists.mutable.of((short) 1, (short) 2, (short) 3);
MutableByteList byteList       = ByteLists.mutable.of((byte) 1, (byte) 2, (byte) 3);
MutableBooleanList booleanList = BooleanLists.mutable.of(true, false);
MutableFloatList floatList     = FloatLists.mutable.of(1.0f, 2.0f, 3.0f);
MutableDoubleList doubleList   = DoubleLists.mutable.of(1.0, 2.0, 3.0);

注意:我是Eclipse Collections的提交者。