JAVA集合之LIST列表深刻总结案例附上解释跟总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
* char----->Character(2)
this.name=name; } public void setname(){
this.name=name; } public void setno(){
this.no=no; } public void setscore(){
this.score=score; } public String getname(){
Iterator<Object> iterator=list.iterator();
while(iterator.hasNext()){
Object object=iterator.next();
//
if(object instanceof Person5){
//
Person5 p=(Person5) object;
//
}
//
else if(list.get(i) instanceof Person5){
//
System.out.println(" 姓 名 :"+((Person5)list.get(i)).getname()+"\t"+" 学
号:"+((Person5)list.get(i)).getno()+"\t"+"分数:"+((Person5)list.get(i)).getscore());}
//
System.out.println(object);
//
}
//
else
System.out.println(object);
}
//
for(int i=0;i<list.size();i++){
//
if(list.get(i) instanceof Integer){
//
System.out.println(list.get(i));
System.out.println(" 姓 名 :"+list.get(i).getname()+"\t"+" 学 号:"+list.get(i).getname()+"\t"+"分数:");
System.out.println(list1.get(i)); } */
//一种是利用迭代器,取得迭代器先调用 iterator()这个方法。 Iterator<Person> iterator=list.iterator();//声明集合的时候用泛型,要求取得迭代器的
Person p1=new Person("李小川",111,80); Person p2=new Person("李四",111,80); Person p3=new Person("李五",111,80); list.add(p1); list.add(p2); list.add(p3); list1.add("添加了字符串"); list1.add(1来自百度文库1); list1.add(333); list1.add('a'); list1.add((byte) 3); list1.remove((Integer)111);//括号里面要求的是对象,所以需要进行强转 list1.remove((Character)'a'); list1.remove((Byte)(byte)3);//先把整型的转换成字符型,在转换成字节引用类型 //有两种方法遍历,一种利用 for 循环中 get(index) /* for(int i=0;i<list.size();i++){
时候也得用泛型,只有是该类型的迭代器才可以迭代的。 while(iterator.hasNext()){ Person p=iterator.next();//注意这里要是没有使用泛型的话,则需要进行强制转
换。Person p=(Person)iterator.next(); //下面的语句要注意,因为 iterator.next();取了三次,变成了取了三个对象。 // 错 误 写 法 : System.out.println(" 姓 名 :"+iterator.next().getname()+"\t"+" 学
号:"+iterator.next().getno()+"\t"+"分数:"+iterator.next().getscore()); System.out.println(" 姓 名 :"+p.getname()+"\t"+" 学 号 :"+p.getno()+"\t"+" 分
数:"+p.getscore());//这个是按顺序输出的 }
return "姓名:"+this.name+",年龄:"+this.score;
} }
总结:
package List列表;
/**ArrayList的特点:
*
①ArrayList实现了可变大小的数组。它允许所有元素,包括null。
*
②ArrayList存储的元素都是有序的,允许存放重复的元素。
*
③线程不同步
Object[] object1=list1.toArray();//集合转换成对象数组,必须是对象数组 for(int i=0;i<object1.length;i++) {
System.out.println(object1[i]);//数组没有 get()这个方法,这个方法只有集合有。 } } }
Java 集合系列之 List 列表学习总结 一.ArrayList 实例 实例 1:ArrayListDemo1 /**
* 总结: * 1.用两种方法遍历 ArrayList 去遍历集合:for 循环 get(index);Iterator 迭代器方法遍历,首先 取得遍历器 Iterator<Person> iterator=list.iterator();调用 hasNext(),next(). * 2.集合中泛型的应用。 */ package List 列表; import java.util.ArrayList;//关于 ArrayList 的用法问题:若是基本类型跟应用类型一起存放的时 候,如何? import java.util.Iterator;
//
else if(list.get(i) instanceof String)
//
System.out.println(list.get(i));
//
}
}
}
class Person5{ String name; int no; int score; public Person5(String name,int no,int score){ this.name=name; this.no=no; this.score=score; } public Person5(int no,int score){ this.no=no; this.score=score; } public Person5(String name){
Iterator iterator1=list1.iterator();//对于集合中没有引用类型的时候可以这样去遍历, 无需判断类型,java 对于基本类型自动分装拆箱。
while(iterator1.hasNext()){ System.out.println(iterator1.next()); }
//
System.out.println(p);
//
//System.out.println(" 姓 名 :"+p.getname()+"\t"+" 学 号 :"+p.getno()+"\t"+" 分
数:"+p.getscore());
//
}
//
else if(object instanceof Integer){
return name; } public int getno(){
return no; } public int getscore(){
return score; } }
案例 2. ArrayListDemo2 /**
* 总结:如果集合中既存放了基本类型,又存放了引用类型的数据,那该怎么遍历呢? * 解决办法:不管是 for 循环遍历还是迭代器 Iterator 遍历,都是可以的。用到的关键字是 instanceof 进行判断是什么类型的数据,从而进行遍历。 * 需要注意的是迭代器遍历,iterator.next(),出现一次便遍历下一个,所以一般得用变量替 换。Object object=iterator.next(); */ package List 列表; import java.awt.List; import java.util.ArrayList;//关于 ArrayList 的用法问题:若是基本类型跟应用类型一起存放的时 候,如何? import java.util.Iterator;
class Person{ String name; int no; int score; public Person(String name,int no,int score){ this.name=name; this.no=no; this.score=score; } public void setname(){ this.name=name; } public void setno(){ this.no=no; } public void setscore(){ this.score=score; } public String getname(){
public class ArrayListDemo2 { public static void main(String[] args){
ArrayList<Object> list =new ArrayList<Object>();//泛型的用法 Person5 p1=new Person5("李川",111,80); Person5 p2=new Person5("李四",111,80); Person5 p3=new Person5("李五",111,80); list.add(p1); list.add(new Integer(111)); list.add(new Float(22.2f)); list.add(new Integer(333)); list.add(new Character('a')); list.add(null); list.add(new String("记住用 for 循环遍历不同类型")); list.add(p2); list.add(p3); list.remove((Character)'a'); list.remove((Float)22.2f);//移除的是对象,所以括号里面是对象,不能是基本类型, 需要强转为对象 list.remove("记住用 for 循环遍历不同类型");//String 本身就是一个对象
*
* 一.首先java集合不支持存放基本类型的,只能存放引用类型的对象。但是真的不可以存放
基本类型数据吗?当然不是,java系统可以实现自动分装。
* 当你要对基本数据类型进行操作的时候,比如删除remove(object),可以通过强转,变
成引用对象类型。八个基本类型都有对应的引用类型。
* int------>Integer(4)
public class ArrayListDemo1 { public static void main(String[] args){ ArrayList<Person> list =new ArrayList<Person>();//泛型的用法
ArrayList list1 =new ArrayList<Comparable>();//无泛型的用法
return name; } public int getno(){
return no; } public int getscore(){
return score; } //toString 方法的总结:要是引用对象有重写了输出对象的格式,则当遍历输出每一 个对象的时候,会自动调用每一个对象对应的 toString 的方法; public String toString() {//重写 toString 方法,输出对象的时候按照重写的形式去输 出,否则输出的是 Person@2b0a141e 形式。对于基本类型的则不要,直接输出值