泛型

Java集合框架(一)

久未见 提交于 2020-01-02 08:30:21
原文 http://www.jianshu.com/p/e31fb2600e4f 集合类存放于java.util包中,集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference) 集合类型主要有3种:set(集)、list(列表)和map(映射) 通俗的说,集合就是一个放数据的容器,准确的说是放数据对象引用的容器 Collection接口 Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素,Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set) Collecton接口常用的子接口有:List接口、Set接口 List接口常用的子类有:ArrayList类、LinkedList类 Set接口常用的子类有:HashSet类、LinkedHashSet类如 接口多态的调用 Collection<String> collection = new ArrayList<String>(); 741560-20170330144456389-1484217347.png 注意 学习Java中三种长度表现形式 数组 .length 属性,返回值 int 字符串 .length() 方法,返回值 int 集合 .size()

委托、匿名方法、Lambda表达式、泛型委托(自定义、Func、Action、Predicate)、约束泛型类和方法、多窗体传递消息、事件、异步编程、二次控件开发

放肆的年华 提交于 2020-01-02 07:13:31
1.匿名方法   没有具体名称,只有委托关键字、方法参数、方法体,所以称之为匿名方法   匿名方法允许将代码块(方法体部分)通过委托变量作为参数传递,以代替独立定义的方法 总结:   方法体要以delegate开头,其后是参数列表,后面紧跟花括号编写方法体,最后以分号结尾   匿名方法是将方法定义与委托变量两个步骤合在一起,省略了方法的单独定义   如果一个方法有一个委托类型的参数,可以直接将匿名方法作为实参。 1 //声明委托 2 public delegate int MyDelegate(int a, int b); 3 4 static void Main(string[] args) 5 {//匿名方法 6 MyDelegate objDel = delegate (int a, int b) 7 { 8 return a + b; 9 }; 10 Console.WriteLine(objDel(10, 20)); 11 Console.ReadLine(); 12 } 匿名方法 2.lambda表达式   C#3.0引入lambda表达式,lambda表达式是匿名方法更简介使用的一种方式   (参数列表) => {方法体} =>读作goes to   lambda表达式参数列表中的参数类型可以是“明确”类型或者是“推断类型”(可以省略参数类型)   如果是推断类型

第1章.Collections类、泛型类和Timing类概述

末鹿安然 提交于 2020-01-02 04:41:37
1.1 群集(collection)的定义 群集是一种结构化的数据类型。 它存储数据,并且提供数据的添加、删除、更新操作,以及对群集的不同属性值的设置与返回操作。 群集可以分为两类:线性的和非线性的。 线性群集是一张元素列表,表中的元素顺次相连。线性群集中的元素通常由位置来决定次序。在现实世界中,购物清单就是很好的线性群集实例。而在计算机世界中则把数组设计成线性群集。 非线性群集所包含的元素在群集内没有位置次序之分。组织结构图就像用架子垒好的台球一样是一个非线性群集的实例。而在计算机世界中树、堆、图和集都是非线性群集。 无论是线性的还是非线性的群集都拥有一套定义好的属性和操作的集合。其中,属性用来描述群集,而操作就是群集能执行的内容。 1.2 群集(collection)的描述 有两种主要的群集类中有几个子类别。 线性的群集可能是直接存取群集,也可能是顺序存取群集。而非线性的群集既可以是层次群集,也可以是组群集。 1.2.1 直接存取群集 直接存取群集最常见的实例就是数组。 这里把数组定义为具有相同数据类型的元素的群集,而且所有数组元素可以通过整数型索引直接进行存取访问。 数组可以是静态的,这样当声明数组的时候便于针对程序的长度来固定指定元素的数量。数组也可以是动态的,通过ReDim或者ReDim Preserve语句就可以增加数组元素的数量。 在C#中,数组不只是内置的数据类型

集合

别来无恙 提交于 2020-01-01 13:07:44
什么是集合 集合(Collection)类是专门用于数据存储和检索的类。这些类提供了对栈(stack)、队列(queue)、列表(list) 和哈希表(hash table)的支持。大多数集合类实现了相同的接口。 集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等。这些类创建Object类的对 象的集合。在C#中,Object类是所有数据类型的基类 常用的集合类 动态数组(Array List) 它代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。 哈希表(Hasht able) 它使用键来访问集合中的元素。当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。 什么是哈希表 它使用键来访问集合中的元素。当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。 Hashtable类常用的属性 Count获取 Hashtable中包含的键值对个数。 IsFixedSize获取一个值,表示 Hashtable是否具有固定大小。

泛型类

☆樱花仙子☆ 提交于 2020-01-01 12:18:32
JDK 1.5前,ArrayList的底层实现 class A{ } class B{ } class MyArrayList{ int size; int capacity; Object [] array; public MyArrayList(int capacity){ array = new Object[capacity]; size = 0; this.capacity = capacity; } void add(Object e) { // 检测容量 array[size++] = e; } int size() { return size; } Object get(int index) { // 检测index不能越界 return array[index]; } boolean isEmpty() { return 0 == size; } } 将对象添加到Object类型的数组中去,因为所有类的基类都是Object,所以将元素类型定义成 Object 类型,这样Object 类型的引用可以指向其他类型的对象了。 但是这样是不安全的: public class Test{ public static void main(String[] args) { MyArrayList list1=new MyArrayList(10); list1.add(new

day16<集合框架+>

霸气de小男生 提交于 2020-01-01 09:45:25
集合框架(去除ArrayList中重复字符串元素方式) 集合框架(去除ArrayList中重复自定义对象元素) 集合框架(LinkedList的特有功能) 集合框架(栈和队列数据结构) 集合框架(用LinkedList模拟栈数据结构的集合并测试) 集合框架(泛型(generic)概述和基本使用) 集合框架(ArrayList存储字符串和自定义对象并遍历泛型版) 集合框架(泛型的由来) 集合框架(泛型类的概述及使用) 集合框架(泛型方法的概述和使用) 集合框架(泛型接口的概述和使用) 集合框架(泛型高级之通配符) 集合框架(增强for的概述和使用) 集合框架(ArrayList存储自定义对象并遍历增强for版) 集合框架(三种迭代的能否删除) 集合框架(静态导入的概述和使用) 集合框架(可变参数的概述和使用) 集合框架(Arrays工具类的asList()方法的使用) 集合框架(集合嵌套之ArrayList嵌套ArrayList) ###16.01_集合框架(去除ArrayList中重复字符串元素方式)(掌握) A:案例演示 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) 思路:创建新集合方式 public class Demo1_ArrayList { public static void main(String[] args) { ArrayList

集合框架基础

安稳与你 提交于 2020-01-01 09:38:58
去除ArrayList中重复字符串元素方式 public static ArrayList getSingle(ArrayList list) { ArrayList newList = new ArrayList(); //创建一个新集合 Iterator it = list.iterator(); //获取迭代器 while(it.hasNext()) { //判断老集合中是否有元素 String temp = (String)it.next(); //将每一个元素临时记录住 if(!newList.contains(temp)) { //如果新集合中不包含该元素 newList.add(temp); //将该元素添加到新集合中 } } return newList; //将新集合返回 } LinkedList的特有功能 * public void addFirst(E e)及addLast(E e) * public E getFirst()及getLast() * public E removeFirst()及public E removeLast() * public E get(int index); 栈和队列数据结构 栈:先进后出 队列: 先进先出 LinkedList模拟栈数据结构的集合 public class Stack { private LinkedList

java泛型demo

南楼画角 提交于 2019-12-31 23:51:09
1.泛型类 public class Dog<T> { private T age; public Dog(T age) { this.age = age; } public T getAge() { return age; } public static void main(String[] args) { //Java7之后,尖括号中是不需要填写参数的 Dog<String> dog=new Dog<>("28"); System.out.println(dog.getAge()); } } 普通的类 public class Dog { private Object age; public Dog(Object age) { this.age = age; } public Object getAge() { return age; } public static void main(String[] args) { Dog dog=new Dog("28"); System.out.println(dog.getAge()); } } 这样的代码是完全可以执行了,那为什么还需要泛型类? 1.安全性 public class Dog { private Object age; public Dog(Object age) { this.age = age; } public

小白之路由浅入深之------day15

余生长醉 提交于 2019-12-30 23:37:02
小白之路由浅入深之------day14Set集合 目录 1.Set集合 1.1Set集合概述和特点【应用】 1.2哈希值【理解】 1.3HashSet集合概述和特点【应用】 1.4HashSet集合保证元素唯一性源码分析【理解】 1.5常见数据结构之哈希表【理解】 1.6HashSet集合存储学生对象并遍历【应用】 1.7LinkedHashSet集合概述和特点【应用】 2.Set集合排序 2.1TreeSet集合概述和特点【应用】 2.2自然排序Comparable的使用【应用】 2.3比较器排序Comparator的使用【应用】 2.4成绩排序案例【应用】 2.5不重复的随机数案例【应用】 3.泛型 3.1泛型概述和好处【理解】 3.2泛型类【应用】 3.3泛型方法【应用】 3.4泛型接口【应用】 3.5类型通配符【应用】 4.可变参数 4.1可变参数【应用】 4.2可变参数的使用【应用】 1.Set集合 1.1Set集合概述和特点【应用】 Set集合的特点 元素存取无序 没有索引、只能通过迭代器或增强for循环遍历 不能存储重复元素 Set集合的基本使用 public class SetDemo { public static void main ( String [ ] args ) { //创建集合对象 Set < String > set = new HashSet

Java学习笔记第四天

前提是你 提交于 2019-12-30 22:36:13
4.泛型 4.2 泛型类 4.3 泛型方法 4.4 泛型接口 4.5 类型通配符 4.6 可变参数 4.7 可变参数的使用 5.Map 5.1 Map集合的概述和使用 5.2 Map集合的基本功能 来源: CSDN 作者: 上大蛋蛋 链接: https://blog.csdn.net/qq_27637315/article/details/103773776