And*_*are 489
List是一个有序的元素序列,而是Set一个无序的元素列表(谢谢你,奎因泰勒).
有序集合(也称为序列).该接口的用户可以精确控制列表中每个元素的插入位置.用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素.
不包含重复元素的集合.更正式地说,集合不包含元素对e1和e2,使得e1.equals(e2)和至多一个null元素.正如其名称所暗示的,该界面模拟数学集抽象.
Ser*_*hyk 217
??????????????????????????????????????????????????????????????????????????
? ? List ? Set ?
??????????????????????????????????????????????????????????????????????????
? Duplicates ? YES ? NO ?
??????????????????????????????????????????????????????????????????????????
? Order ? ORDERED ? DEPENDS ON IMPLEMENTATION ?
??????????????????????????????????????????????????????????????????????????
? Positional Access ? YES ? NO ?
??????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
iva*_*off 69
有序的元素列表(唯一或不唯一)
符合Java的接口名称List
可以通过索引访问
实施使用
独特的元素列表:
顺应名为Java的接口Set
可以不通过索引访问
实施使用
这两种接口Set和List符合Java的接口命名Collection
Har*_*guy 16
从概念上讲,我们通常指的是一个无序的分组,允许重复作为一个Bag,并且不允许重复是一个Set.
小智 10
名单
组
小智 9
List通常允许重复的对象.
List必须订购s,因此可以通过索引访问.
实现类包括:ArrayList,LinkedList,Vector
Set就做不允许重复的对象.大多数实现都是无序的,但它是特定于实现的.
实现类包括:(
HashSet无序),
LinkedHashSet(有序),
TreeSet(按自然顺序或按提供的比较器排序)
小智 8
列表:
列表允许重复元素和空值。使用元素的相应索引易于搜索,并且它会按插入顺序显示元素。示例:(链表)
import java.util.*;
public class ListExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> l=new LinkedList<Integer>();
l.add(001);
l.add(555);
l.add(333);
l.add(888);
l.add(555);
l.add(null);
l.add(null);
Iterator<Integer> il=l.iterator();
System.out.println(l.get(0));
while(il.hasNext()){
System.out.println(il.next());
}
for(Integer str : l){
System.out.println("Value:"+str);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
1
1
555
333
888
555
null
null
值:1
值:555
值:333
值:888
值:555
值:null
值:null
Set:
Set 不允许任何重复元素,它允许单个空值。它不会保持任何显示元素的TreeSet顺序。只会按升序显示。
示例:(树集)
import java.util.TreeSet;
public class SetExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeSet<String> set = new TreeSet<String>();
try {
set.add("hello");
set.add("world");
set.add("welcome");
set.add("all");
for (String num : set) {
System.out.println( num);
}
set.add(null);
} catch (NullPointerException e) {
System.out.println(e);
System.out.println("Set doesn't allow null value and duplicate value");
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
所有
你好
欢迎
世界
显示java.lang.NullPointerException
设置不允许空值和重复值
小智 8
| 因素 | 列表 | 放 |
|---|---|---|
| 分组元素是有序的吗? | 是的 | 不 |
| 通过索引提供位置访问? | 是的 | 不 |
| 可以存储重复元素吗? | 是的 | 不 |
可以存储多个null元素吗? |
是的 | 不 |
| 蔡尔兹: | ArrayList,LinkedList,Vector, 和Stack |
HashSet和LinkedHashSet |
List和Set都是接口。它们都扩展了 Collection 接口。集合和列表之间的重要区别是:
\nList和Set之间的主要区别在于List允许重复,而 Set 不允许重复。
\n列表是一个有序集合,它维护插入顺序,这意味着在显示列表内容时,它将按照元素插入列表的顺序显示元素。
\nSet是一个无序集合,它不保持任何顺序。很少有Set的实现可以维护顺序,例如LinkedHashSet(它按插入顺序维护元素)。
\n列表允许任意数量的空元素。Set最多只能有一个null 元素。
\n在我们谈论Java接口时,为什么不看看Javadoc?
List是有序集合(序列),通常允许重复Set一个的集合,不包含重复元素,迭代顺序可以通过实施保障关于集合的缺乏顺序没有提及:它取决于实现.
集合是一组无序的不同对象 - 不允许重复的对象.它通常使用要插入的对象的哈希码来实现.(具体实现可能会添加排序,但Set接口本身不会.)
列表是一组有序的对象,可能包含重复项.它可以与实施ArrayList,LinkedList等等.
这可能不是您正在寻找的答案,但集合类的JavaDoc实际上非常具有描述性.复制/粘贴:
有序集合(也称为序列).该接口的用户可以精确控制列表中每个元素的插入位置.用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素.
与集合不同,列表通常允许重复元素.更正式地,列表通常允许元素对e1和e2成为e1.equals(e2),并且如果它们根本允许空元素,则它们通常允许多个空元素.有人可能希望通过在用户尝试插入运行时异常时抛出运行时异常来实现禁止重复的列表,这是不可想象的,但我们希望这种用法很少见.
| 归档时间: |
|
| 查看次数: |
552054 次 |
| 最近记录: |