《 大数据 和人工智能交流》头条号向广大初学者新增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函数式等目前主流计算机语言。
根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。