数组的定义与初始化:

一维数组

类型标识符数组名[];或类型标识符[ ] 数组名

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和collection

Collection是一种接口,这个接口还有两个子接口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());

 }

}

}