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()));
}
}
}
- Java学习笔记六
- java学习笔记(六)
- Java学习笔记六
- java学习笔记六
- java学习笔记(六)
- java-J2SE学习笔记(六)
- Java学习笔记(六)
- Java学习笔记(六)
- Java Web学习笔记(六)
- Java SE 学习笔记(六)
- Java学习笔记(六)
- Java学习笔记(六)
- java学习笔记(六)
- [Java]学习笔记,随笔【六】
- java学习笔记(六)
- Java IO学习笔记六
- Effective Java学习笔记(六)
- Effective Java 学习笔记 (六)
- Using R to Fix Data Quality: Section 4
- linux 用户空间和内核空间延时函数
- 2013菏泽国际牡丹文化旅游节
- Android自动化测试之使用java调用monkeyrunner
- 构造函数的重载
- Java学习笔记六
- wAF绕过测试
- Netfilter中返回值的具体用法
- Java学习笔记七
- [36]Valid Sudoku
- debian下安装内核源码的方法
- Qt之Ui文件的使用及DLL动态链接库的创建
- Java学习笔记八
- 在游戏界,就有了些游戏界的理解。不过本文是对某游戏开发商的信