链表数组的定义
//定义链表数组
List<Integer> a = new ArrayList<>() ;
增添
//定义链表数组
List<Integer> a = new ArrayList<>() ;
//定义普通int型数组
int num[] = new int[10] ;
//为普通数组赋值
for(int i = 0 ; i < 10 ; i ++) num[i] = in.nextInt() ;
//boolean add(Element e)//增加指定元素到链表尾部.
for(int x : num){
a.add(x) ;
}
获取元素
for(int i = 0 ; i < 10 ; i ++){
System.out.print(a.get(i)+" ");
}
获取数组
//toArray()//获取一个数组,数组中所有元素是链表中的元素.(即将链表转换为一个数组)
//获取到数组类型为Object
//Integer->Object->int
//String->Object->string
Object[] b = a.toArray() ;
int len = 0 ;
len = b.length ;
if(len != 0 ){
for(Object x : b) System.out.print(x + " ") ;
}
else System.out.print("wdnmd");
System.out.println() ;
System.out.println("--------------") ;
包含
//boolean contains(Object o)//如果链表包含指定元素,返回true.
if(a.contains(5)){
System.out.print("动态数组包含 5");
}else{
System.out.print("动态数组不包含 5");
}
System.out.println() ;
System.out.println("--------------") ;
指定位置替换
//set(int index, E element)//将链表中指定位置上的元素替换成新元素。
//修改下标为5的位置的值为10
a.set(5,10) ;
for(int x:a){
System.out.print(x + " ") ;
}
System.out.println() ;
System.out.println("--------------") ;
获取长度
System.out.println("动态数组长度为 : " + a.size()) ;
System.out.println("--------------") ;
移除
//remove(int index)//删除链表中指定位置的元素.
for(int i = 0 ; i < a.size() ; i ++){
if(a.get(i) == 10) a.remove(i) ;
}
for(int i = 0 ; i < a.size() ; i ++){
System.out.print(a.get(i) + " ") ;
}
System.out.println() ;
System.out.println("--------------") ;
查找
//int indexOf(Object o)//返回元素在链表中第一次出现的位置,如果返回-1,表示链表中没有这个元素。
System.out.println("元素2在链表中第一次出现的位置(索引)为: " + a.indexOf(2)) ;
System.out.println("--------------") ;
//int lastIndexOf(Object o)//返回元素在链表中最后一次出现的位置,如果返回-1,表示链表中没有这个元素。
System.out.println("元素5在链表中最后一次出现的位置(索引)为: " + a.lastIndexOf(5)) ;
System.out.println("--------------") ;
判空
//boolean isEmpty()//返回true表示链表中没有任何元素.
if(a.isEmpty()){
System.out.println("链表为空");
}else{
System.out.println("链表不为空");
}
System.out.println("--------------") ;
清空
//void clear()//从链表中删除所有元素.
a.clear() ;
if(a.isEmpty()){
System.out.println("链表为空");
}else{
System.out.println("链表不为空");
}
System.out.println("--------------") ;
完整代码
import java.util.* ;
class Main{
static int l , r , cnt ,n ;
public static void main(String[] args){
Scanner in = new Scanner(System.in) ;
//定义链表数组
List<Integer> a = new ArrayList<>() ;
//定义普通int型数组
int num[] = new int[10] ;
//为普通数组赋值
for(int i = 0 ; i < 10 ; i ++) num[i] = in.nextInt() ;
//boolean add(Element e)//增加指定元素到链表尾部.
for(int x : num){
a.add(x) ;
}
//get(int index)//获取链表中指定位置处的元素.
for(int i = 0 ; i < 10 ; i ++){
System.out.print(a.get(i)+" ");
}
System.out.println() ;
System.out.println("--------------") ;
//toArray()//获取一个数组,数组中所有元素是链表中的元素.(即将链表转换为一个数组)
//获取到数组类型为Object
//Integer->Object->int
//String->Object->string
Object[] b = a.toArray() ;
int len = 0 ;
len = b.length ;
if(len != 0 ){
for(Object x : b) System.out.print(x + " ") ;
}
else System.out.print("wdnmd");
System.out.println() ;
System.out.println("--------------") ;
//boolean contains(Object o)//如果链表包含指定元素,返回true.
if(a.contains(5)){
System.out.print("动态数组包含 5");
}else{
System.out.print("动态数组不包含 5");
}
System.out.println() ;
System.out.println("--------------") ;
//set(int index, E element)//将链表中指定位置上的元素替换成新元素。
//修改下标为5的位置的值为10
a.set(5,10) ;
for(int x:a){
System.out.print(x + " ") ;
}
System.out.println() ;
System.out.println("--------------") ;
//int size()//返回链表长度(链表包含元素的个数).
System.out.println("动态数组长度为 : " + a.size()) ;
System.out.println("--------------") ;
//remove(int index)//删除链表中指定位置的元素.
for(int i = 0 ; i < a.size() ; i ++){
if(a.get(i) == 10) a.remove(i) ;
}
for(int i = 0 ; i < a.size() ; i ++){
System.out.print(a.get(i) + " ") ;
}
System.out.println() ;
System.out.println("--------------") ;
//int indexOf(Object o)//返回元素在链表中第一次出现的位置,如果返回-1,表示链表中没有这个元素。
System.out.println("元素2在链表中第一次出现的位置(索引)为: " + a.indexOf(2)) ;
System.out.println("--------------") ;
//int lastIndexOf(Object o)//返回元素在链表中最后一次出现的位置,如果返回-1,表示链表中没有这个元素。
System.out.println("元素5在链表中最后一次出现的位置(索引)为: " + a.lastIndexOf(5)) ;
System.out.println("--------------") ;
//boolean isEmpty()//返回true表示链表中没有任何元素.
if(a.isEmpty()){
System.out.println("链表为空");
}else{
System.out.println("链表不为空");
}
System.out.println("--------------") ;
//void clear()//从链表中删除所有元素.
a.clear() ;
if(a.isEmpty()){
System.out.println("链表为空");
}else{
System.out.println("链表不为空");
}
System.out.println("--------------") ;
}
}