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

java进阶--week3-3.2&&3.4--对象数组&&哈希表

2017-02-14 16:06 176 查看
------------------------------------------对象数组------------------------------------------------

import java.util.ArrayList;//范型类

class Value {

    private int i;

    public void set(int i){ this.i = i;}

    public int get(){ return i;}

}

public class NoteBook {
private ArrayList <String> notes = new ArrayList <String>();//用来存放String的ArrayList

    
public void add(String s){//添加字符串

       notes.add(s);

    }
public void add(String s,int location ){//把String放在location的前面
notes.add(location,s );//注意两个add的不同,类似C的字符串处理函数
}

    public int getSize(){//字符串大小

    return notes.size();

    }

    public String getString(int index){//根据编号返回字符串,注意String的S要大写,不同int

    return notes.get(index);//get方法在ArrayList中

    }

    public void removeNote(int index){//是否移动成功

    notes.remove(index);

    }

//     public String[] list(){//返回数组里所有的东西

//     String[] a= new String[notes.size()];

//      for (int i=0; i<notes.size(); i++ ){//这段for循环可用ArrayList类库中的toArray代替

//      a[i] =   notes.get(i);

//      }

//      return   a;

  //  }

    

    public String[] list(){

    int[]ia = new int[10];

    String[] a = new String[notes.size()];

    notes.toArray(a);

    return a;

    }

    
public static void main(String[] args) {

         Value[] a = new Value[10];

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

        a[i] = new Value();

//         这句是什么意思??--新建一个Value类的对象,存到数组的每一个元素中,

//         在创建后,基本数据类型数组可以直接对数组元素赋值、引用等操作;

//         而自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对其赋值、引用等操作,

//         如果没有单独对每个对象元素创建,会导致空指针异常

        a[i].set(i);//然后设置为i

         }

         for( Value v:a ){

        System.out.println(v.get());

             v.set(0);

         }

         for( Value v:a ){

        System.out.println(v.get());

         }
//      NoteBook nb = new NoteBook();

//      nb.add("frist");

//      nb.add("second");

//      nb.add("thrid",0);

//      System.out.println(nb.getString(1));

//  System.out.println(nb.getString(0));

//  nb.removeNote(1);

//  String[] a = nb.list();//获得字符数组

//  for(String s : a){//上下两个s对应

//  System.out.println(s);

//  }

//  
}

}

-----------------------哈希表-----------------------

功能:输入数字,输出代表的钱币的面值

package coins;

import java.util.HashMap;

import java.util.Scanner;

public class Coins {

    private HashMap<Integer,String> coinNames = new  HashMap<Integer,String>();

    public Coins(){

    coinNames.put(1,"penny");

    coinNames.put(10,"dime");

    coinNames.put(25,"quarter");

    coinNames.put(50,"half-dollar");

    coinNames.put(50,"五毛" );//重复放进一个键,则覆盖(唯一对应)

    for(Integer x : coinNames.keySet()){

    String s = coinNames.get(x);//注意不同一般的for-each,hash表有key和value,x是key,s是value

    System.out.println(s);

    }

    }

    public String getName(int amount){

    if( coinNames.containsKey(amount) )//Hash类库中返回boolean值的方法

        return coinNames.get(amount);

        else

        return "NOT FOUND";

    }
public static void main(String[] args) {

         Scanner in = new Scanner(System.in);

         int amount = in.nextInt();

         Coins coin = new Coins();

         String name = coin.getName(amount);

         System.out.println(name);

        

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: