| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> List的用法和使用 -> 正文阅读 |
|
[数据结构与算法]List的用法和使用 |
目录 一、泛型1.1为什么引入泛型接下来我们就来看一段代码 ?我们会发现当把MyArrayList中定义int类型的数组时,向其中添加的元素就只能是int类型,添加其他类型就会报错,而当我们用Object类型代替时,Object过于通用。针对上述问题,我们引入泛型来进行修改,让代码更加的通用。 1.2什么是泛型泛型有<K>、<T>、<V>、<E> 占位符,表示当前的类是一个泛型类
这样我们就可以将这个类的其他部分用<T>替换掉了,使用时就可以更加的方便。
注意:?
?java的底层数组有一定的问题ArrayList<Object>不是Array<Integer>的父类,但是Object是Integer的父类。 ?1.3泛型类的使用定义的里面的类容只能是String类型,自动对类型进行检测: ?可以自动对类型进行转换:
注意:泛型的泛型参数只能是类类型或者简单类型的包装类。 泛型的擦除机制: 当我们编写一个新的类时我们进行对比我们会发现
?它们的结果并没有泛型,这是我们可以得出泛型只存在于编译期间,而不存在于运行期间。运行时会将T变为Object类。
|
基本数据类型 | 包装类 |
int | Integer |
char | Character |
double | Double |
float | Float |
byte | Byte |
short | Short |
long | Long |
boolean | Boolean |
手动封箱和开箱
int i=10;
//手动封箱
Integer integer=Integer.valueOf(i);
Integer integer1=new Integer(i);
//手动开箱
int a=integer.intValue();
自动封箱和开箱
//自动封箱
Integer i=10;
//自动开箱
int m=i;
List<Integer> list=new ArrayList<>();
list.add(1);//尾插法
list.add(1,12);//插入相应的位置
List<Integer> list1=new ArrayList<Integer>();
list1.add(1);list1.add(2);list1.add(3);list1.add(4);
list.addAll(list1);//将list1中的所有元素放入list中末尾
List<Integer> list=new ArrayList<>();
list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);
list.remove(1);//对下标进行删除
System.out.println(list);//[1, 3, 4, 5]
List<Integer> list=new ArrayList<>();
list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);
System.out.println(list.get(2));//3
System.out.println(list.set(1, 10));//2
List<Integer> list=new ArrayList<>();
list.add(1);list.add(2);list.add(3);list.add(2);list.add(1);
System.out.println(list.contains(1));//为1的值是否在list里面
System.out.println(list.indexOf(1));//查找当前数 0
System.out.println(list.lastIndexOf(1));//从后向前 4
List<Integer> list=new ArrayList<>();
list.add(1);list.add(2);list.add(3);list.add(2);list.add(1);
//对于部分数组的截取
List<Integer> list1=list.subList(1,3);
System.out.println(list1);//[2, 3]
list.clear();//对于数组的清空
System.out.println(list);//[]
//无参构造
List<Integer> list=new ArrayList<>();
//指定初始容量
List<Integer> list1=new ArrayList<>(5);
//使用list1中的初始容量
List<Integer> list2=new ArrayList<>(list1);
//无参构造
List<Integer> list3=new LinkedList<>();
力扣链接:杨辉三角。
什么是杨辉三角?
?像这种形式不断累加的就是杨辉三角。
接下来就是对于杨辉三角的代码实现:
import java.util.ArrayList;
import java.util.List;
public class practice03 {
public static List<List<Integer>> Replace(int num){
List<List<Integer>> list=new ArrayList<>();
int[][] add=new int[num][num];
for(int i=0;i<num;i++){
List<Integer> list1=new ArrayList<>();
for(int j=0;j<=i;j++){
if(j==0||j==i){
add[i][j]=1;
}else {
add[i][j]=add[i-1][j]+add[i-1][j-1];
}
list1.add(add[i][j]);
}
list.add(list1);
}
return list;
}
public static void main(String[] args) {
List<List<Integer>> list=Replace(3);
System.out.println(list);
}
}
?
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:24:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |