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);
}
}
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);
}
}
相关文章推荐
- Java进阶学习第十一天——cookie&session入门
- 记录--java进阶week2.1--翁凯
- Java之旅--Linux&java进阶(看清操作系统层面的事)
- java进阶Week3_作业(已解决)
- Java&.Net双语互通进阶
- 我的Android进阶之旅------>解决:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
- Java进阶学习第十三天——JSTL&EL学习
- Java进阶之内存模型&并发编程
- Java基础&进阶(收藏)
- Java进阶学习第十天——request&response
- JAVA 使用哈希表操作数据库的例子 Using Hashtables to Store & Extract results from a Database.
- Java多线程知识点总结——进阶篇(十二) 之 Join方法 & 优先级 & yield方法
- java之旅(7)隐藏实现 & 复用类
- 博文视点金秋新书大放送(2)安全技术大系 & java大系
- JAVA&JSP_friend
- Java中"异常机制"的深入研究
- Java之旅(10)多态性 (续) & 接口(interface)
- 关于C++&Java中命令行编译的问题
- 昨天看完了《java & xml》
- JVM - Concept and Lifetime (From book "Inside the Java Virtual Machine")