Java 集合和列表之间有什么区别?
Java 集合和列表之间有什么区别?,java,list,set,Java,List,Set,集合和列表接口之间的根本区别是什么? 列表是项的有序分组 集合是一组无序的项目,不允许重复(通常) 从概念上讲,我们通常指的是一个无序分组,它允许将重复项作为一个包,而不允许将重复项作为一个集合。排序。。。列表有顺序,集合没有顺序。list是元素的有序序列,而set是无序的元素的独特列表(谢谢,) 有序的集合(也称为 顺序)。此界面的用户 能够精确地控制系统中的位置 列出插入的每个元素。这个 用户可以通过其 整数索引(列表中的位置), 并在列表中搜索元素 不包含任何内容的集合 重复元素。更
集合
和列表
接口之间的根本区别是什么?- 列表是项的有序分组
- 集合是一组无序的项目,不允许重复(通常)
从概念上讲,我们通常指的是一个无序分组,它允许将重复项作为一个包,而不允许将重复项作为一个集合。排序。。。列表有顺序,集合没有顺序。
list
是元素的有序序列,而set
是无序的元素的独特列表(谢谢,)
有序的集合(也称为
顺序)。此界面的用户
能够精确地控制系统中的位置
列出插入的每个元素。这个
用户可以通过其
整数索引(列表中的位置),
并在列表中搜索元素
不包含任何内容的集合
重复元素。更正式地说,
集合不包含元素对e1
和e2,使得e1等于(e2),并且
大多数情况下只有一个空元素。正如
它的名字,这个接口模型
数学集合抽象
集合不能包含重复的元素,而列表可以包含重复的元素。列表(在Java中)也意味着顺序。所有
列表
类都保持插入顺序。它们根据性能和其他特征使用不同的实现(例如,ArrayList
用于特定索引的访问速度,LinkedList
用于简单地维护顺序)。由于没有密钥,因此允许重复
集合
类不维护插入顺序。它们可以选择性地施加特定顺序(如SortedSet
),但通常具有基于某些哈希函数的实现定义的顺序(如HashSet
)。由于集合
是通过键访问的,因此不允许重复。集合是一组无序的不同对象-不允许重复对象。它通常使用被插入对象的哈希代码来实现。(特定实现可能会添加顺序,但Set接口本身不会。)
列表是一组有序的对象,其中可能包含重复项。它可以通过数组列表
,链接列表
等来实现。元素的有序列表(唯一或不唯一)符合名为
列表的Java接口
可以通过索引访问
使用实现
- 链接列表
- ArrayList
唯一元素列表:
符合名为Set
的Java接口
不能通过索引访问吗
使用实现
- 散列集(无序)
- LinkedHashSet(已订购)
- 树集(按自然顺序或提供的比较器排序)
这两个接口Set
和List
都符合名为Collection
的Java接口这可能不是您要寻找的答案,但collections类的JavaDoc实际上是非常具有描述性的。复制/粘贴:
有序的集合(也称为
顺序)。此界面的用户
能够精确地控制系统中的位置
列出插入的每个元素。这个
用户可以通过其
整数索引(列表中的位置),
并在列表中搜索元素
与集合不同,列表通常允许
重复元素。更正式地说,
列表通常允许成对的
元素e1和e2,以便
e1.等于(e2),它们通常
允许多个空元素,如果它们
完全允许空元素。事实并非如此
不可想象有人会希望
实施禁止
通过抛出运行时
当用户尝试
插入它们,但我们希望使用这种用法
这是罕见的
名单:
List
s通常允许复制对象。
列表
必须排序,因此可以通过索引访问
实现类包括:ArrayList
,LinkedList
,Vector
设置:
设置
s不允许重复对象。
大多数实现是无序的,但它是特定于实现的
实施类包括:
HashSet
(无序),
LinkedHashSet
(已订购),
TreeSet
(按自然顺序或提供的比较器排序)1.List允许重复值,set不允许重复值
2.列表维护在列表中插入元素的顺序
Set不能维持秩序。
3.列表是元素的有序序列,而集合是无序的元素的不同列表。List
是元素的有序分组李>
列表用于收集具有重复项的元素
新方法在列表中定义
接口
设置
是元素的无序分组
集合用于收集没有重复项的元素
集合接口中没有定义新方法,因此我们只能对集合子类使用集合接口方法
Set
和List
都用于存储E
类型的元素。区别在于Set
以无序方式存储,不允许重复值<代码>列表
用于按顺序存储元素,它允许重复值
Set
元素不能通过索引位置访问,而List
元素可以通过索引位置访问。Java中List和Set之间的一些值得注意的区别如下所示:
1)Java中列表和集合的根本区别在于允许重复元素。Java中的List允许重复,而Set不允许任何重复。如果在集合中插入重复项,它将
s = [] as Set
l = []
max = 5
print "random Numbers :"
20.times{
e = (int)Math.random()*max
s << e
l << e
print "$e, "
}
println "\n"
println "Set : $s "
println "list : $l
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);
}
}
}
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");
}
}
}