您的位置 首页 java

Java的List、Map等集合对象详细总结

大数据 和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、 Scala java script 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。

一、为什么使用集合而不是数组

1、集合和数组相似点

都可以存储多个对象,对外作为一个整体存在

2、数组的缺点

长度必须在初始化时指定,且固定不变

数组采用连续存储空间,删除和添加效率低下

数组无法直接保存映射关系

数组缺乏封装,操作繁琐

二、Java集合的总体结构

1、List集合、Map集合数据的特点

2、List的应用

示例1:

ArrayList list=new ArrayList();

list.add(111);

list.add(0.11f);

list.add(new String(“ab”));

list.add(new Integer(100));

list.add(new Goods(“g001″,”book001”));

for(int i=0;i<list.size();i++)

{

Object obj=list.get(i);

System.out.println(obj);

}

示例2:

public class Demo

{

public static List show()

{

int count=0;

List list=new ArrayList();

for(int i=1;i<=100;i++)

{

count=0;

for(int j=1;j<=i;j++)

{

if(i%j==0)

{

count++;

}

}

if(count==2){

list.add(i);

}

}

return list;

}

public static void main(String args[])

{

List list= show();

for(Object obj:list)

{

System.out.print(obj+” “);

}

}

}

示例3:

public class Demo

{

public static void main(String args[])

{

String s[]={” aaa “,”bbb”,”aaa”,”ddd”,”aaa”,”eee”,”bbb”};

Set set=show(s);

for(Object obj:set)

{

System.out.println(obj);

}

}

public static Set show(String s[]) {

Set set=new HashSet();

for(int i=0;i<s.length;i++)

{

set.add(s[i]);

}

return set;

}

}

三、泛型

1、避免类型转换出现错误

例如:

public static void main(String args[])

{

List list=new ArrayList();

list.add(“aaa”);

list.add(“bbb”);

list.add(new Goods(“g001″,”book001”));

list.add(“ccc”);

for(int i=0;i<list.size();i++)

{

Object obj=list.get(i);

String s=(String)obj;

System.out.println(s);

}

}

出现运行时异常:

Exception in thread “main” java.lang.ClassCastException: com.Goods cannot be cast to java.lang.String

at com. Demo .main(Demo.java:16)

解决方案:泛型

语法格式: List<String> list=new ArrayList<String>();

2、在编译阶段就将错误检测出来

3、在运算的时候数据类型能够确定,不需要进行强制转换

例-1:

public static void main(String args[])

{

List<String> list=new ArrayList<String>();

list.add(“aaa”);

list.add(“bbb”);

list.add(“ccc”);

for(String s:list)

{

System.out.println(s);

}

}

例子-2:

实体类:

public class Goods {

private String gid;

private String gname;

private Float price;

public Goods(String gid, String gname, Float price) {

super();

this.gid = gid;

this.gname = gname;

this.price = price;

}

public String getGid() {

return gid;

}

public void setGid(String gid) {

this.gid = gid;

}

public String getGname() {

return gname;

}

public void setGname(String gname) {

this.gname = gname;

}

public Float getPrice() {

return price;

}

public void setPrice(Float price) {

this.price = price;

}

}

测试:

public static void main(String args[])

{

List<Goods> goodsList=new ArrayList<Goods>();

Goods g1=new Goods(“g001″,”book001”,new Float(1000));

Goods g2=new Goods(“g002″,”book002”,new Float(2000));

Goods g3=new Goods(“g003″,”book003”,new Float(3000));

goodsList.add(g1);

goodsList.add(g2);

goodsList.add(g3);

System.out.println(“商品IDt商品名称tt商品价格”);

for(Goods g: goodsList)

{

System.out.println(g.getGid()+”t”+g.getGname()+”tt”+g.getPrice());

}

}

示例-3:

public class Demo

{

public static void main(String args[])

{

List<Goods> goodsList=new ArrayList<Goods>();

Scanner input=new Scanner(System.in);

while(true)

{

Goods goods=new Goods();

System.out.println(“请输入商品编号(输入quit退出):”);

String gid=input.next();

if(“quit”.equals(gid))

{

break;

}

goods.setGid(gid);

////////

System.out.println(“请输入商品名称(输入quit退出):”);

String gname=input.next();

goods.setGname(gname);

////////

System.out.println(“请输入商品价格(输入quit退出):”);

Float gprice=input.nextFloat();

goods.setPrice(gprice);

goodsList.add(goods);

}

for(Goods g:goodsList)

{

System.out.println(g.getGid()+” “+g.getGname()+” “+g.getPrice());

}

}

}

《大数据和人工智能交流》的宗旨

1、将大数据和人工智能的专业数学:概率数理统计、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2、将大数据和人工智能的专业涉及到的数据结构和算法:分类、聚类 、回归算法、概率等算法变得通俗易懂。

3、最新的高科技动态:数据采集方面的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等等。

根据初学者需要会有C语言、Java语言、Python语言、Scala函数式等目前主流计算机语言。

根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。

文章来源:智云一二三科技

文章标题:Java的List、Map等集合对象详细总结

文章地址:https://www.zhihuclub.com/185845.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图