Java学习笔记:常用数据结构List和Map

Null和空字符串的区别

数据结构

《数据结构》是研究数据在计算机中存储的学科。数组就是一种基础的可以顺序存储固定数量数据的数据结构。

int[] nums1=new int[]{2,32,22};

Java中还有很多其他数据结构的类/接口,比如Set、Map、List等,他们还有很多子类,比如LinkedList、ArrayList…… 这次,介绍最常用的两个:LinkedList、LinkedHashMap。先讲非泛型写法,再介绍泛型。

LinkedList

数组是长度在声明的时候就确定了,无法在运行时改变数组对象的长度。

int[] nums1=new int[]{2,32,22};//长度在声明的时候就确定了,无法在运行时改变数组对象的长度
int[] nums2=nums1;
nums1=new int[]{2,32,2,21};//创建了一个新的数组对象
System.out.println(Arrays.toString(nums1));
System.out.println(Arrays.toString(nums2));

需要一种能在运行时动态添加内容的数据结构,这就是LinkedList。

list.add(“3”)添加元素, list.size() 获取数据个数。

list.get(8)获取指定序号的元素。

演示:写代码添加若干个元素,再遍历输出。

 LinkedHashmap

1、编程中,有时候需要一种类似“字典”的数据结构:也就是保存“一对数据”。比如实现英汉词典的时候,就是一堆由“英文-中文解释”组成的“键值对”,英文是“键”(Key),中文是“值”(Value)。键不能重复

2、map.put(“Hello”,”你好”);//放入键值对,如果已经存在则覆盖 map.get(“Hello”)//根据键获取值,如果不存在,则返回null。

3、演示:做一个简单的英汉词典,如果查询不存在则提示“查不到”。

String s="cat";
Object obj=map1.get(s);
if (obj==null)
{
    System.out.println("查无此词");
}
else
{
    System.out.println("结果为"+obj);
}

用于确定放入的是什么类型。 

使用泛型时候不能使用原始类型。

要使用包装的类。 

吐槽一番:恶心、死板的Java语法。 再吐槽:Java中最为人诟病 的其实就是:Java的泛型是假泛型,是类型擦除,非常弱鸡。可以网上自己搜。 

 

 

 


版权声明:本文为weixin_64612659原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。