我的java学习日记(15)

1 篇文章 0 订阅

Java学习第十五节 之容器、集合

一、常用工具方法

1Collection接口  //优于数组的是可以自动收缩长度

2contains()  //判断是否存在某元素,对象是元素

3containAll()  //判断集合是否包含于另一个集合里边,对象是集合

4remove()   //移除某元素

5clear()   //清空对应数组

6retainAll()  //求交集

7toArray()  //把对象转换成数组,数组类型被强制转换成Object[]

8、求长度:

  String è使用length()方法

  Array è使用的是length属性

   集合 è使用的是size()方法

程序举例:

  importjava.util.ArrayList;

import java.util.Collection;

public class test {

        public static void main(String[] args){

 

         Collection<Object> c=newArrayList<Object>(); //定义数组c

          System.out.println( c.isEmpty());  //判断数组是否为空

          c.add("123");  //给数组c添加元素

          c.add("456");

          c.add(true);

          c.add('a');

          System.out.println(c.size());  //输出数组现在的长度

         System.out.println( c.isEmpty());   //判断数组是否为空

         c.remove("123");  //移除数组中的某元素

         System.out.println(c.size());  //再次打印数组当前长度

         System.out.println( c.isEmpty());  //判断数字是否为空

         c.clear();  //清空数组

         System.out.println(c.size());  //打印数组长度

         System.out.println( c.isEmpty());  //判断数组是否为空

      

  Collection<Object>c1=new ArrayList<Object>();  //定义数组c1

          c1.add("123");

          c1.add("456");  //给数组c1添加元素

          c1.add(true);

         

         System.out.println(c.contains("123"));   //判断当前数组c是否含有传进来的该元素

         System.out.println(c1.contains("123"));  //判断当前数组c1是否含有传进来的该元素

         

          System.out.println(c.containsAll(c1));  //判断数组c是否包含在数组c1里边

          System.out.println(c1.containsAll(c));  //判断数组c1是否包含在数组c里边

              }    

}

二、集合List

1List集合分为ArrayListLinkedList

 

2List遍历方法

   1)普通for循环

    (2)增强for循环,即for-each循环

   3)迭代器

3、代码练习

public class ListTest2{

  

   public void useList(List list){  //封装使用list实现输入法的方法

          while(true){

          System.out.println("请输入拼音;");

          Scanner s=new Scanner(System.in);

          String pinyin=s.next();

          if(pinyin.equalsIgnoreCase("quit")){

             break;    

          }    

          boolean exist=true;

         

          for(Object o:list){

                 Words word=(Words)o;

                 String py=word.getPinyin();

                 String ws=word.getWords();

           

             if(py.equals(pinyin)){

                    String[] wo=ws.split("");

                    for(inti=0;i<wo.length;i++){

                           System.out.print((i+1)+""+wo[i]+"  ");

                    }

                    System.out.println();

                    break;

             }

             if(!exist){

                    System.out.println("您输入的拼音不存在!!");

             }

          }

     }

 }

 

public staticvoid main(String[] args){  //主方法测试

          Words w1=newWords("zhang","张,长,涨,章,帐");  //初始化对象

          Words w2=newWords("zhao","找,照,招,着,赵");

          Words w3=newWords("qian","钱,前,千,$_$,欠,倩");

          Words w4=newWords("sun","孙,损,笋,隼");

          Words w5=newWords("li","里,李,理,离,力");

         

          List list=new ArrayList();  //创建数组list

          list.add(w1);  //把上边初始化的对象添加到数组里边

          list.add(w2);

          list.add(w3);

          list.add(w4);

         

          ListTest lt=new ListTest ();

          t.useList(list);

4list中类Connections的常用方法

1)      Connections.sort(list) è list按从小到大的顺序排列

2)      Connections.reverse(list)è list反序排列

3)      Connections.shuffle(list)è list随机排列

4)      Connections.fill(list,元素)è 将元素填充到集合list里边,并排序

5)      Connections.copy(list1,list) è 将集合list里边的元素全部复制进集合list1里边

6)      Connections.binarySeach() è 查找

注意:1、 缺点:没有类型检测,不安全;效率低,需要装箱、拆箱(可使用泛型改善该情况)

三、集合Set

实现可分为HashSet()TreeSet()

1HashSet(),无序的,散列表

2TreeSet(), 有序的,树形结构,必须实现comparable接口è实现ComparableTo()方法,返回的数字,0表示相等,负数表示小于,正数表示大于。

四、集合Map

1、分类:HashMapHashTableTreeMap

2、遍历方法:keySet()è所有键

             values()è所有的值

              entrySet()è所有entry条目,包括键和值

 五、泛型,上述集合中使用泛型可避免警告

泛型优点:1、检测类型,避免错误

           2、提高效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值