Java容器Container学习记录(代码篇)

1.数组容器

1.特性:固定大小,有序。可以存储任意类型(简单类型,对象类型)。

2.数组的定义:

 语法:类型[ ] 变量名=null

 其中类型可以是Java的任意类型,包括:简单类型,对象类型

数组定义案例:

int[ ] a1=null; a1=new int[10];//定义一个长度为10的整数数组

long[ ] a2=null; a2=new long[20]; //定义一个数据类型为long长度为20数组

String[ ] a3=null;a3=new String[30]; //定义一个数据类型为String长度为30的数组

Person[ ] a4=null;a4=new Person[5]; //定义一个数据类型为Person长度为5的数组,需要引入有Person方法的包,否则Person无法解析为类型。

3.创建数组:

(1)只创建一个固定大小的数组,没有存储任何数据(方式一和上面举的几个例子就是如此)

方式一:一般推荐使用这种方式

格式:数组存储的数据类型[ ] 数组名称 = new 数组存储的数据类型[数据长度];

如:定义一个长度为10的整数数组 int[ ] arr=new int[10];

定义一个长度为10的字符串数组 String arr=new String[10];

(2)创建数组时就在数组中存储了数据

方式二:

格式:数组存储的数据类型[ ] 数组名称 = {元素1,元素2,元素3,......};

如:定义一个存储 张三 李四 王五 赵六字符串的数据容器

String[ ] arr={"张三","李四","王五","赵六"}

Person p1=new Person(“吴明”,20);//调用Person注意自己的类中是否调用了包含有Person方法的包,还有标点大小写

Person p2=new Person(“刘明”,20); //调用Person注意自己的类中是否调用了包含有Person方法的包, 还有标点大小写

方式三

格式:数组存储的数据类型[ ] 数组名称 = new 数组存储的数据类型[]{元素1,元素2,元素3,元素4,......}

如:定义一个存储10,20,30,40的整型数组

int[ ] arr=new int[ ]{10,20,30,40}

备注:数组为上篇笔记中所写的按大小是否可变容器中的不可变大小容器,长度一旦指定不可更改。

4.数组的遍历:(遍历就是将容器中的每个对象取出来,如挨个打印出来)

(1)使用普通的for循环

数组的每个元素都有下标位置,从0开始到i结束,如

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

(2)Java提供了所有容器的简便变量信息(for each循环)

for(类型 变量:容器){  }//类型要是数组的则类型一致

for(long m:a2) {

         System.out.println(m);

      }

5.

6.取得数组单元格的数据:

Int m=a1[2];

List容器

1.特性:可变,有序(元素是从0开始,有序的)

2.类型:Java.util.List

3.List接口的定义:

Public interface List<E> extends Collection<E>定义了所有List容器应该有的功能:功能列表。

4.实现类:

AbstractList,AbstractSequentialList,ArrayList,AttributeList,CopyOnWriteArrayList,LinkedList,RoleList,RoleUnresolvedList,Stack,Vector

编程中使用最多的是:

ArrayList:类似数组,容器元素用下标访问,查找指定元素快,但执行插入和删除操作时速度较慢。

LinkedList:类似链表结构的List,执行插入和删除操作速度快,但查询指定元素较慢。

5.创建List容器

(1)List 对象=new 实现类();

可以存储所有对象类型,实际编程很少使用,通常List容器都用来存储相同类型的数据。

 

从JDK5开始支持容器的泛型,通过泛型指定容器只能存储特定的类型。

List<String> list01=new ArrayList<String>();//只能存String类型的对象,如下的10就会报错

List<Person> list01=new LinkedList<Person>();//只能存Person类型的对象

 

6.List提供的主要方法:(参考JDK API文档):List接口的方法

Set容器

1.特性:无序,可变,只能存对象类型。

2.类型:java.util.Set

3.定义:public interface Set<E> extend Collection<E>

Set接口定义了所有Set容器必须支持的方法。

4.实现类型:

AbstractSet, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet

使用较多的:HashSet,LinkedHashSet,TreeSet(排序)

5.创建Set容器

(1)用于存储任何对象类型的Set容器

Set 变量=new 实现类();

(2)存储固定类型对象的Set容器(同List容器中的泛型)

Set<E> 变量=new 实现类<E>();

 

6.Set接口定义的方法:(参考 JDK API文档):Set接口的方法

Set容器运行示例:

 

Map容器

1.特性:其对象必须有标签(key),无序,可变,且key值不能重复

2.接口类型:Java.util.Map

3定义:public interface Map<K,V>

4.实现类:

AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap

常用的类有:HashMap,LiskedhashMap,TreeMap

5.创建Map容器

(1)无泛型,不限定存储的key和value(编程时一般不适用)

Map map01=new HashMap();

 

(2)带泛型,限定存储的key和value

Map<String,Number> map01=new HashMap();//指定类型为StringNumber

6.Map接口定义的方法:(参考JDK API文档):Map接口的方法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值