您当前的位置:首页 > 互联网教程

java中list集合怎么创建

发布时间:2025-05-23 13:54:05    发布人:远客网络

java中list集合怎么创建

一、java中list集合怎么创建

首先直接回答你的问题:运行期,遇到B元素会报错。即类型转换错误。泛型的出现就是为了预防这类错误。因为默认你存的object对象,可以强制类型转换,但在运行期,电脑会发现强制类型转换错误。故报错。

第一、不确定泛型,首先会有黄色的叹号,我一般不会让代码出现。

第二、什么样的元素都可以提取出相同的继承类型。常用的有serialize,object等。

最后,把你发的图的问题也解决了。

编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。

为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

汇编程序。使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。

计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。这种将高级编程硬件程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。

二、java中的集合有几种

集合类是放在java.util.*;这个包里。集合类存放的都是对象的引用,而非对象本身,为了说起来方便些,我们称集合中的对象就是指集合中对象的引用(reference)。引用的概念大家不会忘了吧,在前边我们讲数据类型时讲的。

集合类型主要有3种:set(集)、list(列表)、map(映射)和Queue(队列)。//队列为jdk5中的加上的

集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。我们知道数学上的集合也是Set这个,集合里面一定是没有重复的元素的。

列表(List)的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的Set是不同的。它是链表嘛,一条链肯定有顺序这个顺序就不一定了。

映射(Map),这个在java里不是地图的意思,其实地图也是映射哈。它里面的东西是键-值对(key-value)出现的,键值对是什么呢?举个例子,比如我们查字典,用部首查字法。目录那个字就是键,这个字的解释就是值。键和值成对出现。这样说可以理解吧。这也是很常用的数据结构哦。

在jdk5.0以前,通常的实现方式是使用java.util.List集合来模仿Queue。Queue的概念通过把对象添加(称为enqueuing的操作)到List的尾部(即Queue的后部)并通过从List的头部(即Queue的前部)提取对象而从 List中移除(称为dequeuing的操作)来模拟。你需要执行先进先出的动作时可以直接使用Queue接口就可以了。

这4个东西,有时候功能还不太完善,需要有些子类继承它的特性。Set的子接口有TreeSet,SortedSet,List的有ArrayList等,Map里有HashMap,HashTable等,Queue里面有BlockingQueue等。我们来看看例子吧:

public static void main(String[] args){

Set set= new HashSet();//HashSet是Set的子接口

public static void main(String[] args){

public static void main(String[] args) throws java.io.FileNotFoundException{

Map word_count_map= new HashMap();

FileReader reader= new FileReader(args[0]);

Iterator words= new WordStreamIterator(reader);

String word=(String) words.next();

String word_lowercase= word.toLowerCase();

Integer frequency=(Integer)word_count_map.get(word_lowercase);

int value= frequency.intValue();

frequency= new Integer(value+ 1);}

word_count_map.put(word_lowercase, frequency);

System.out.println(word_count_map);

public Queue<String> q;//发现了一个奇怪的语法,这个尖括号是泛型声明

public QueueTester(){q= new LinkedList<String>();}

public void testFIFO(PrintStream out) throws IOException{

public static void main(String[] args){

QueueTester tester= new QueueTester();

try{ tester.testFIFO(System.out);

三、java中集合类是什么意思

1、java.util中共有13个类可用于管理集合对象,它们支持集、列表或映射等集合,以下是这些类的简单介绍

2、HashSet:使用HashMap的一个集的实现。虽然集定义成无序,但必须存在某种方法能相当高效地找到一个对象。使用一个HashMap对象实现集的存储和检索操作是在固定时间内实现的.

3、TreeSet:在集中以升序对对象排序的集的实现。这意味着从一个TreeSet对象获得第一个迭代器将按升序提供对象。TreeSet类使用了一个TreeMap.

4、Vector:实现一个类似数组一样的表,自动增加容量来容纳你所需的元素。使用下标存储和检索对象就象在一个标准的数组中一样。你也可以用一个迭代器从一个Vector中检索对象。Vector是唯一的同步容器类??当两个或多个线程同时访问时也是性能良好的。

5、Stsck:这个类从Vector派生而来,并且增加了方法实现栈??一种后进先出的存储结构。

6、LinkedList:实现一个链表。由这个类定义的链表也可以像栈或队列一样被使用。

7、ArrayList:实现一个数组,它的规模可变并且能像链表一样被访问。它提供的功能类似Vector类但不同步。

8、HashTable:实现一个映象,所有的键必须非空。为了能高效的工作,定义键的类必须实现hashcode()方法和equal()方法。这个类是前面java实现的一个继承,并且通常能在实现映象的其他类中更好的使用。

9、HashMap:实现一个映象,允许存储空对象,而且允许键是空(由于键必须是唯一的,当然只能有一个)。

10、WeakHashMap:实现这样一个映象:通常如果一个键对一个对象而言不再被引用,键/对象对将被舍弃。这与HashMap形成对照,映象中的键维持键/对象对的生命周期,尽管使用映象的程序不再有对键的引用,并且因此不能检索对象。

11、TreeMap:实现这样一个映象,对象是按键升序排列的。

12、Set和List都是由公共接口Collection扩展而来,所以它们都可以使用一个类型为Collection的变量来引用。这就意味着任何列表或集构成的集合都可以用这种方式引用,只有映射类除外(但也不是完全排除在外,因为可以从映射获得一个列表。)所以说,把一个列表或集传递给方法的标准途径是使用 Collection类型的参数。