Java学习笔记六

来源:互联网 发布:由诲女知之乎的意思 编辑:程序博客网 时间:2024/05/16 19:05

<a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! 

1. 动态数组ArrayList:底层是其实是一个数组,加入的对象,取出时调用get方法输出索引index.

2. 集合中大多数加入或者取出的对象都是Object类型的,但是八种原生数据类型并不是对象,要用他们各自的包装类包装成对象,例如Integer in = new Integer(3),这样的话3就成为了一个对象,

public class IntegerTest

{

   public static void main(String[] args)

   {

      Integer in = new Integer(3);

      System.out.println(in);

   }

}

打印的时候打印的是对象的toString方法,结果打印的是3,为什么会这样呢?

其实当打印被包装的对象时,打印的就是他们的包装内容,

注意要区分一下各个包装类中都提供了类似intValue的方法,他的作用是输出所包含的类型,如果上面的内容改成 System。out.println(in.intValue());

结果也是一样的;但是这时 int.intValue 就是一个真真正正的int类型的值了,也就是3,而in 只是对象,如果我们想打印 3+1,就只能用intValue方法来转换

System.out.println((in.intVaule())+1);

打印结果是 4;

3. ArrayList中的 public int size()方法,返回集合中元素的个数。

4. public void clear():清空集合中的所有元素

5.  publicbollean isEmpty(),判断当前集合中元素是否为空。

6. public E  reMove(int index):清除指定索引内容;后面索引向前进一。

7. public int indexOf(Object o):返回输入元素内容的索引;要是有相同元素怎么办?

   测试程序:

package com.jianjian2;

 

import java.util.ArrayList;

 

public class ArrayListTest

{

   public static void main(String[] args)

   {

      ArrayList list = new ArrayList();

      list.add("a");

      list.add("b");

      list.add("c");

      list.add("e");

      System.out.println(list.size());

      list.clear();

      System.out.println(list.size());

      System.out.println("-----------");

      list.add("e");

      list.add("b");

      list.add("c");

      list.add("e");

      System.out.println(list);

      list.remove(2);

      System.out.println(list.get(2));

      System.out.println(list.indexOf("e"));

8.累加集合中元素

 package com.jianjian2;

 

import java.util.ArrayList;

 

public class ArrayListTest2

{

   public static void main(String[] args)

   {

      int sum = 0;

      ArrayListlist = new ArrayList();

      list.add(new Integer(3));

      list.add(new Integer(4));

      list.add(new Integer(6));

      list.add(new Integer(1));

      for(int i = 0; i < list.size(); i++)

      {

        int value = ((Integer)list.get(i)).intValue();//注意类型的转换;

        sum += value;

       

       

      }

      System.out.println(sum);

       

       

   }

}

  

说明 ArrayList里面可以存放相同的元素,但是当查找时,已查到的第一个元素为准。

     

     

     

   }

}

 

 

8. 注意包装类在生成对象时,必须要为构造方法赋值,也就是必须要有包装对象,new Integer(必须有数字);

9.

toString方法只能返回 String类型的数据,但是当我们需要重写toString方法时,要返回的数据类型不一定是String类型的,比如说整型,解决这个问题有两种方式:

1):String类中提供了为八种原生类型的转换形式,即public static string valueOf(int i)方法,虽然返回对象类型依然是String,但是输出使我们想要的形式,该方法需要定义一个新的String对象,用来调用valueOf()方法;

publicString toString()

{

Strings = new String();

returns.valueOf(int i);

}

2):返回的内容只要包含字符串,也就是混合型;

例如 return “最大数字=”+this.x;

也是可以运行的,而且很明了。

10.

利用Arrays.sort(数组名)方法,可以实现对数组的快速排序。

 

package com.jianjian2;

 

import java.util.Arrays;

 

public class ArrayTest

{

   public static void main(String[] args)

   {

      int[] array = {3,1,5,2,1,6,7,8,5,3,2,3,4,5};

      Arrays.sort(array);

      for(int i = 0; i <array.length;i++)

      {

        System.out.println(array[i]);

      }

       

     

   }

}

11.

虽然说集合中不能直接添加原声数据类型,但是为什么不可以?我个人认为,是为了帮助类更方便的实现关于类中带有索引的方法,比如说添加到指定位置、取出、例如 ArrayList 和 LinkedList中的

public void add(intindex);方法添加指定元素与指定位置;

public Objectget(int index);取出指定位置元素;

public Objectremove(int index),移除某元素;

12.

java.util包下提供了一个 Collections的类,类中为集合(Collection)提供了很多方法,包括排序,拷贝,转换等等,比如说

package com.jianjian2;

 

import java.util.Collections;

import java.util.Comparator;

import java.util.LinkedList;

 

public class CollectionsTest

{

   public static void main(String[] args)

   {

      LinkedList list = new LinkedList();

      list.add("f");

      list.add("d");

      list.add("a");

      list.add("b");

      list.add("c");

      System.out.println(list);

      Comparator r = Collections.reverseOrder();

//这里调用Collections中的reverseOrder();方法,方法返回一个Comparator类型,通常的来说Comparator类型都是提供的是比较方法;

那么这一步就是定义了一个反序比较方法r;

      Collections.sort(list,r);//调用排序方法,前者为待排序的集合对象,后者为排序方法;

      System.out.println(list);

   }

}

13.

空null 可以被转换成任何类型;

14.

利用 F2键可以修改类的名称;

15.

遍历HashMap的两个方法,第一种,HashMap中提供了一种方法

public SetkeySet();作用是调用当前对象的 key 值集合;返回类型是Set型 ,Set型不能有重复元素,即key 值不能重复,

所以 我们 可以 Set set = map.keySet();这样就将所有的 key 放进集合 Set里面,接着只要遍历 Set ,用get(key)输出;

又可以利用 集合中的 固有方法 iterator,一个个的取出Set;

package com.jianjian3;

 

import java.util.HashMap;

import java.util.Iterator;

import java.util.Set;

 

public class MapTest2

{

   public static void main(String[] args)

   {

      HashMap map = new HashMap ();

      map.put("a","aa");

      map.put("b","bb");

      map.put("c","cc");

      System.out.println(map);

      Set set = map.keySet();

      for(Iterator ite = set.iterator();ite.hasNext();)

      {

        System.out.println(map.get(ite.next()));

      }

       

   }

}

 

原创粉丝点击