本节主要结合用例讲述Java中Map类、Set类、List类如何使用。

Java中有封装好的集合类,常用的有Map类、Set类、List类,简单说明一下他们的用法。

List类,常用有ArrayList和LinkedList,前者存可变数组,相当于数据结构中的顺序表;后者采用链表结构存,相当于单链表。

类方法: add(i)、size()、get(i)、set(i, obj)

Set类:常用有HashSet和TreeSet,如名,建哈希表/树存储。

类方法:first()、last()、subSet()、等

Map接口: 同时存key和value。

类方法:put(key, value)、get(key)、keySet()、values()等

补充知识:泛型

Object前面已经讲过,是所有变量类的父类,可在写方法时定义变量为Object,作为泛型。

具体使用方法时,用形如: new String(”123“);  代替object。

集合类和泛型具体测试样例如下,看一看就都懂啦~

package re07;

import java.util.*;

public class CollectionTest {

    private Object b;

    public void setB(Object b) {
this.b = b;
} public Object getB() {
return b;
} public static void main(String[] args) { Collection<String> list1 = new ArrayList<>(); // Collection练习
list1.add("a");
list1.add("b");
System.out.println(list1.size()); List<String> list2 = new ArrayList<>(); // list集合练习
list2.add("a");
list2.add("b");
for (int i = 0; i < list2.size(); i++) {
System.out.println(list2.get(i));
} TreeSet<String> tree = new TreeSet<>(); // set集合练习
tree.add("a");
tree.add("b");
tree = (TreeSet<String>) tree.subSet("a", "b");
System.out.println(tree.first()); Map<String, String> map = new HashMap<>(); // map集合练习
map.put("1", "a");
map.put("2", "b");
System.out.println(map.values().toString() + map.keySet().toString()); // 泛型使用
CollectionTest test = new CollectionTest();
test.setB(new String("泛型")); // 向上转型 System.out.println((String)test.getB()); // 向下转型
} }

java复习(7)---集合类、泛型的更多相关文章

  1. Java复习——反射和泛型的复习

    反射 Class类 一个类被类加载器加载到内存之中,占有一片区域,这个空间里的内容就是类的字节码,不同的类的字节码是不一样的,这一个个空间页可以使用类来表示,这就是Class类. 根据这个概念可知:不 ...

  2. JAVA基础部分复习(三、泛型)

    JAVA泛型的基本使用: /** * JAVA泛型的使用 * 定义:泛型的本质是参数化类型,就是说所操作的数据类型被指定为一个参数. * * 定义泛型方法的规则 * 1.所有泛型方法声明都有一个类型参 ...

  3. java 复习001

    java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...

  4. JAVA提高六:泛型

    在面向对象编程语言中,多态算是一种泛化机制.例如,你可以将方法的参数类型设置为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法将会更具有通用性.此外,如果将方法参数声明为接口,将 ...

  5. java 复习总结

    java 复习总结 命名方法 创建文件的名称应该和类的名称一致,不然会报错. 类采用首字母大写的方式来命名,如果是多个单词的类名,则每个单词首字母都大写,例如:HelloWorld . 方法采用驼峰命 ...

  6. 《徐徐道来话Java》(2):泛型和数组,以及Java是如何实现泛型的

    数组和泛型容器有什么区别 要区分数组和泛型容器的功能,这里先要理解三个概念:协变性(covariance).逆变性(contravariance)和无关性(invariant). 若类A是类B的子类, ...

  7. java 复习003 之排序篇

    由java 复习003跳转过来的C语言实现版见some-sort-algorithms 快速排序(不稳定 O(n log n)) package vell.bibi.sort_algorithms; ...

  8. java复习(1)---java与C++区别

    [系列说明]java复习系列适宜有过java学习或C++基础或了解java初步知识的人阅读,目的是为了帮助学习过java但是好久没用已经遗忘了的童鞋快速捡起来.或者教给想快速学习java的童鞋如何应用 ...

  9. 【原】Java学习笔记027 - 泛型

    package cn.temptation.test; import java.util.ArrayList; import java.util.Iterator; public class Samp ...

随机推荐

  1. 使用NTP协议服务器时间同步

    NTP是用来使系统和一个精确的时间源保持时间同步的协议.建议大家在自己管理的网络中建立至少一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易.我们分别从windows ...

  2. HBase跨版本数据迁移总结

    某客户大数据测试场景为:Solr类似画像的数据查出用户标签--通过这些标签在HBase查询详细信息.以上测试功能以及性能. 其中HBase的数据量为500G,Solr约5T.数据均需要从对方的集群人工 ...

  3. Select的逻辑处理顺序(Transact-SQL)

    1. Select 语句基本写法 2. Select的逻辑处理顺序 SQL与其他编程语言不同的明显特征就是代码的处理顺序.在其他编程语言中,常见是按编写代码的先后顺序(从上之下)来处理.但在SQL中, ...

  4. File类和时间类的两道综合练习

    练习1: 获取指定目录下(包含子目录)所有的某一种类型的文件 分析: 1.指定路径并获取其下的文件对象 2.要判断给定的目录是否为空 3.要判断给定路径下获取的目录是否为空 4.判断是否是某种文件 5 ...

  5. ReactJS React+Redux+Router+antDesign通用高效率开发模板,夜间模式为例

    工作比较忙,一直没有时间总结下最近学习的一些东西,为了方便前端开发,我使用React+Redux+Router+antDesign总结了一个通用的模板,这个技术栈在前端开发者中是非常常见的. 总的来说 ...

  6. Vue学习之路---No.5(分享心得,欢迎批评指正)

    同样,首先我们还是回顾一下昨天讲到的东西: 1.常用的Vue修饰器 2.当利用js方法不修改数据,但也可以改变视图时,我们需要整体返回再整体接收 (如: items.example1 = items. ...

  7. java日期处理函数

    java中获取本年第一天的日期 public static Timestamp getYearFirstDay() { Calendar calendar = Calendar.getInstance ...

  8. "the hypervisor is not running" 故障

    在我们日常服务器管理中,常常会遇到创建虚拟机,如果在一台新部署的 Hyper-V 上新建一个 Virtual Machine 时,出现错误信息:"The virtual machine co ...

  9. Android时光轴

    时间轴,顾名思义就是将一些事件或者事物等按照时间顺序罗列起来,给用户带来一种更加直观的体验.京东和淘宝等的物流顺序就是一个时间轴 前言:​Android中使用RecyclerView实现时光轴,代码简 ...

  10. [原创]HBase学习笔记(4)- 数据导入

    需要分别从Oracle和文本文件往HBase中导入数据,这里介绍几种数据导入方案. 1.使用importTSV导入HBase importTSV支持增量导入.新数据插入,已存在数据则修改. 1.1.首 ...