您的位置:首页 > 编程语言 > Java开发

java基础数组的定义与初始化以及集合框架的应用

2013-10-14 14:42 821 查看
数组的定义与初始化:一维数组类型标识符数组名[];或类型标识符[ ] 数组名int intArray [ ]; int[ ] intArray;类型标识符[ ] 数组名=new 类型标识符[数组长度]int[] scores=new int[20];int[] scores={68,79,95,99,85};int[] scores=new int[]{68,79,95,99,85};第一个元素为scores[0],下标为0;第五个元素为scores[4],下标为5数组的长度是可用length属性获得,比如scores.length二维数组类型标识符[][] 数组名或者类型标识符 数组名[][]初始化也和一维数组类似,给出两对方括号和维的长度。比如 int[][] stuscores=new int[20][3],这样就创建了行为20,列为3的一个二维数组二维数组的初始化:int [][] tests={{56,68,62},{66,75,87},{69,89,100}};数组的长度也是可用length属性获得,比如scores.length对象框架集Java的集合框架分为两大类:map和collectionCollection是一种接口,这个接口还有两个子接口List和set。List接口会按照插入的顺序保存对象元素;Set是无序的,并且不会有重复元素(相同元素会被覆盖)Map:是一种接口,用于存储一系列“键值对”的对象。List:此接口会按照插入的顺序保存元素,这个接口下最常用的实现类是ArrayList
建立一个pojo类
publicclassStudent{
private String name;
private String sex;
privateintage;
public String getName() {
returnname;
}
publicvoid setName(String name) {
this.name = name;
}
public String getSex() {
returnsex;
}
publicvoid setSex(String sex) {
this.sex = sex;
}
publicint getAge() {
returnage;
}
publicvoid setAge(int age) {
this.age = age;
}
}
List的用法
publicclass TestMain {
publicstaticvoid main(String[] args) {
Studentstu=new Student();
stu.setName("小明");
stu.setSex("男");
stu.setAge(25);
Studentstu1=new Student();
stu1.setName("小红");
stu1.setSex("女");
stu1.setAge(23);
ArrayList<Student> list=new ArrayList<Student>();
list.add(stu);
list.add(stu1);
System.out.println(stu.getName()+" : "+stu.getSex()+" : "+stu.getAge());
System.out.println(stu1.getName()+" : "+stu1.getSex()+" : "+stu1.getAge());
//取得第一个对象信息
System.out.println(list.get(0));
//计算对象的个数
System.out.println(list.size());
System.out.println("普通for循环:");
for(int i=0;i<list.size();i++){
Studentstu2=list.get(i);
System.out.println(stu2.getName());
}
System.out.println("加强版for循环:");
for(Student stu3:list){
System.out.println(stu3.getName());
}
}
控制台输出结果:
小明 : 男 : 25
小红 : 女 : 23
MapCollection.Student@61de33
2
普通for循环:
小明
小红
加强版for循环:
小明
小红
List常用API list.addAll()增加本程序所有元素 list.isEmpty()是否为空是为True否为False list.clear()清空所有数据 list.contains()是否包含是为True否为False list.indexOf()返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 False。import java.util.ArrayList;import java.util.List;public class TestMain2 { public static voidmain(String[] args) {
ArrayList<Student>list=new ArrayList<Student>(); for(int i=0;i<5;i++){ list.add(newStudent("afei"+i)); } for(inti=0;i<list.size();i++){ Studentstu=list.get(i); System.out.println(stu.getName()); } for(Student stu:list){ System.out.println(stu.getName()); } Student[] stus=newStudent[20]; for(Student stu:stus){ System.out.println(stu); } System.out.println("--------------"); List<Student>list1=new ArrayList<Student>(); list1.addAll(list); for(inti=0;i<list1.size();i++){ System.out.println(list1.get(i)); } list1.clear(); System.out.println("清除之后"); booleanisempt=list1.isEmpty(); System.out.println("list1是否为空?"+isempt); list1.add(null); booleaniscon=list1.contains(null); System.out.println("iscon:"+iscon); List<Integer>list3=new ArrayList<Integer>(); list3.add(4); list3.add(8); Student s1=newStudent(); Student s2=newStudent(); System.out.println("两个对象是否相等"+(s1==s2));// System.out.println(list3.contains(8)); }}Set的用法import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
publicclass TestMain2 {
publicstaticvoid main(String[] args) {
Set<Student>set2=new HashSet<Student>();
Studentstu=new Student();
stu.setName("哈哈");
stu.setSex("屌丝");
stu.setAge(22);
set2.add(stu);
for(Student stu1:set2){
System.out.println(stu.getSex());
}
// 无序性
Set<Integer>set=new HashSet<Integer>();
set.add(11);
set.add(9);
set.add(5);
set.add(6);
set.add(10);
set.add(9);
set.add(10);
for(int i:set){
System.out.println(i);
}
System.out.println(set.size());
System.out.println("========================");
// 有序的排列
Set<Integer>set1=new TreeSet<Integer>();
set1.add(11);
set1.add(9);
set1.add(5);
set1.add(6);
set1.add(10);
set1.add(9);
set1.add(10);
for(int i1:set1){
System.out.println(i1);
}
}
}Map 是一个键值对的结构,我们可以通过键来查找值。
import java.util.HashMap;
import java.util.Map;
publicclass TestMain3 {
publicstaticvoid main(String[] args) {
Studentstu=new Student();
stu.setName("上海");
Studentstu1=new Student();
stu1.setName("北京");
Studentstu2=new Student();
stu2.setName("青岛");
Studentstu3=new Student();
stu3.setName("即墨");
Map<String,Student>map=new HashMap<String, Student>();
map.put("shanghai", stu);
map.put("beijing", stu1);
map.put("qingdao", stu2);
map.put("qingdao", stu3);
System.out.println(map.get("shanghai").getName());
System.out.println(map.get("beijing").getName());
System.out.println(map.get("qingdao").getName());
}
}注意:同样的键会被覆盖Map不能直接进行for来遍历,想要遍历它,可以先把它转化为Set,然后在做for循环。
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
publicclass TestMain4 {
publicstaticvoid main(String[] args) {
Map<String,String>map=new HashMap<String, String>();
map.put("haha","hehe");
map.put("gaga","gege");
Set<Map.Entry<String,String>>map_set=map.entrySet();
for(Entry<String,String> ent:map_set){
System.out.println(ent.getKey()+" : "+ent.getValue());
}
}
}
其中 Entry是Map接口下的子接口,专用于表示Map结构的键值对。Iterator迭代器的使用import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import settest.Student;public class TestMain { public static voidmain(String[] args) { List<Student> list= new ArrayList<Student>(); list.add(newStudent("lsp1", 27, 89)); list.add(new Student("lsp2",99, 45)); list.add(newStudent("lsp3", 190, 38)); // for(inti=0;i<list.size();i++){ // Studentstu=list.get(i); //System.out.println(stu.getName()); // } // 通过List来创建一个迭代器 Iterator<Student>it = list.iterator(); //forprint(it); forprint(list); Set<Student> set =new HashSet<Student>(); set.add(newStudent("lsp4", 434, 90)); set.add(newStudent("lsp5", 323, 12)); set.add(newStudent("lsp6", 9, 47)); // for(Student stu:set){ //System.out.println(stu.getName()+" : "+stu.getScore()); // } // 通过set来创建一个迭代器 Iterator<Student>set_it = set.iterator();// forprint(set_it); forprint(set); Map<String,String> map = new HashMap<String, String>(); map.put("beijing","北京"); map.put("shanghai","上海"); map.put("wuhan","武汉"); map.put("wuhan","广州"); map.put("wuhan","三峡"); } public static voidforprint(Iterator<Student> it) { System.out.println("我在打印日志"); // while(it.hasNext()){ // Studentstu=it.next(); //System.out.println(stu.getName()+" : "+stu.getScore()); // } while (it.hasNext()) { Student stu =it.next(); System.out.println(stu.getName()+ " : " + stu.getScore()); } } public static voidforprint(Collection<Student> coll) { System.out.println("我们用的coll"); for (Student stu : coll){ System.out.println(stu.getName()+ " : " + stu.getScore()); } }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java java基础
相关文章推荐