java--之熬夜 LIst接口 的相关知识点

 

      虽熬夜不是一个好的习惯,但对于我们学IT的来说有时候就是因为很想得原因 于是就留了下来自己安静的学习

希望 有助于我和我们同java的学习者有个深度的理解

 

// 本java 主要表达了list接口的输入与输出  因为List 与Iterator 等很多接口是相互继承,并且都是接口 所以 List能与他们
// 相互转换  可以使用他们自己特有的方法。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class Dom1 {
 public static void main(String[] args) {
  List<String> list= new ArrayList<String>();
  
  list.add("1");
  list.add("2");
  list.add("3");
  list.add("4");
  list.add("5");
  //通过迭代器来迭代数据
  Iterator<String> lit= list.iterator();
   while( lit.hasNext()){
    System.out.println(lit.next());
   }
   //在指定位子插入数据
   list.add(0,"sss");
   for(int i=0; i<list.size();i++){
    System.out.println(list.get(i));
   }
 }

}

--------------------------------------------------------------------------------------------------------------------------------------

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
//此代码是基础代码, 理解List中的vector和list中的属性。( iteration 迭代器)
//将集合转换成obj 对象   将集合转换成数组,将数组转换成集合的一系列方法
   //重点:  集合.toarrays()                集合.aslist()
public class Demo {

 public static void main (String[] args){
  int arr[]={1,2,3};
  //
  for(int a: arr){
   System.out.println(a);
  }
  //多态。多态多态多态。把子类对象赋值给父类对象
  List<String> list =new Vector<String>();//  这个接口相当于 写了一个活动下标的数组,可以任意添加或删除数据。
   list.add("one");
   list.add("two");
   list.add("three");
   for(String temp :list){
    System.out.println(temp);
   }
   Iterator<String>it =list.iterator();// 实现本接口后就可以用for rach 来迭代输出。
   while(it.hasNext()){
    String t=it.next();
    System.out.println(t);
   }
  
   Object objs[] = list.toArray();//toarray  返回包含将集合转换成一个obj的对象
   for ( Object obj: objs){
    String tt= (String) obj;
    System.out.println(tt);
   }
   // 将集合  直接转换指定数组类型
   String strs[]=list.toArray(new String[0]);
   System.out.println("-------");
   //将数组转换成集合
          /* int a[] = {1,2,3} ;
  
    List<int []> i =Arrays.asList(a);
   *///或是 用Integer
   Integer arrs[]= new  Integer[]{1,3,4,5,};
    List<Integer> i= Arrays.asList(arrs);
     for ( Integer in:i ){
      System.out.println(in);
     }
     System.out.println("------");
    System.out.println(i.size());
    if (i.contains(4)){ //s看集合众是否含有某个元素
     System.out.println("含有4");
    }else{
     System.out.println("含有4");
    }
 }
}

 ------------------------------------------------------------------------------

/**
 * 本java 讲述了LinkedList 的用法   是和Iterator的用法相同的 并且扩展了一些方法
 * 扩展的方法有 压栈 出栈 是为  数据添加以单线程(基于链表形式)的方式修改。
 */
//   特殊理解   Arraylist 和linkedlist的区别:
    /**
     * 1,ArrayList 是实现了基于动态的数组的结构,LinkedList是基于链表的数据可结构
     * 2,对于随机访问的get和set,ArrayList觉得优越于LinkedList,因为LinkedList要移动指针
     *      -----------ArrayList〉〉〉〉LInkedList-------
     * 3,对于新增和三处炒作add和remove等方法的使用,LinkedList比较占优势,
     * 或者说 Iterator 比较对数据更好操作一点,因为ArrayList要移动数据。
     *   但对于单条数据的插入或删除,ArrayList的数度反而优越于LinkedList,但若是
     *   批量的随机的擦如删除数据,LinkedList的数度大大优越于ArrayList,因为ArrayList每插入
     *   一条数据都会移动插入点以后的数据。
     * 总的来说 ArrayList适用于单条数据的修改
     *       LinkedList适用于多条数据的修改    
     *
     */

 

import java.util.Iterator;
import java.util.LinkedList;

public class Demo2 {
 public static void main(String[] args) {
  // List 接口的链接列表实现
  LinkedList<String>list =new LinkedList<String>();
  list.add("2");
  list.add("r");
  list.add("f");

   list.push("one");// 放在第一个下标的位子
   list.push("two");
   list.push("three");
  for(int i=0;i<list.size();i++){
   System.out.println(list.get(i));
   
  }
    //给List 创建迭代器
  Iterator<String> lits = list.iterator();
  //与  通用 LinkedList<String>list =new LinkedList<String>();
   while( lits.hasNext()){
    System.out.println(list.pop());   //获取并删除
   // System.out.println(list.pop());只获取 不删除
   }
  System.out.println(list.size());//此时 集合中为空
 }
 
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值