if(i%k==0){
flag=false;
break;
}
}
returnflag;
}
}
8、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。
写出程序。
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
publicclassThreadTest1{
privateintj;
publicstaticvoidmain(Stringargs[]){
ThreadTest1tt=newThreadTest1();
Incinc=tt.newInc();
Decdec=tt.newDec();
for(inti=0;i<2;i++){
Threadt=newThread(inc);
t.start();
t=newThread(dec);
t.start();
}
}
privatesynchronizedvoidinc(){
j++;
System.out.println(Thread.currentThread().getName()+"-inc:
"+j);
}
privatesynchronizedvoiddec(){
j--;
System.out.println(Thread.currentThread().getName()+"-dec:
"+j);
}
classIncimplementsRunnable{
publicvoidrun(){
for(inti=0;i<100;i++){
inc();
}
}
}
classDecimplementsRunnable{
publicvoidrun(){
for(inti=0;i<100;i++){
dec();
}
}
}
}
9.用输入/输出写一个程序,让用户输入一些姓名和电话号码。
每一个姓名和号码将加在文件里。
用户通过点“Done”按钮来告诉系统整个列表已输入完毕。
如果用户输入完整个列表。
程序将创建一个输入文件并显示或打印出来。
格式如:
555-1212,Tom123-456-7890,PeggyL234-5678,Marc234-5678,Ron876-4321,Beth&Brian33.1.42.70,Jean-Marc。
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
importjava.util.ArrayList;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
publicclassPhoneNumberextendsJFrame{
JButtonjbOk=newJButton("OK");
JButtonjbDone=newJButton("Done");
JButtonjbExit=newJButton("Exit");
JTextFieldjtName=newJTextField(15);
JTextFieldjtNumber=newJTextField(15);
ArrayListalName=newArrayList();
ArrayListalNumber=newArrayList();
publicPhoneNumber(){
setTitle("输入输出演示");
setSize(270,150);
setLocation(400,400);
setLayout(newGridLayout(3,1));
JPanelpUp=newJPanel();
pUp.add(newJLabel("姓名:
",JLabel.LEFT));
pUp.add(jtName);
JPanelpCenter=newJPanel();
pCenter.add(newJLabel("号码:
",JLabel.LEFT));
pCenter.add(jtNumber);
JPanelpDown=newJPanel();
pDown.add(jbOk);
pDown.add(jbDone);
pDown.add(jbExit);
add(pUp);
add(pCenter);
add(pDown);
jbOk.addActionListener(newOk());
jbDone.addActionListener(newDone());
jbExit.addActionListener(newExit());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
privateclassOkimplementsActionListener{
publicvoidactionPerformed(ActionEventarg0){
Stringname=jtName.getText();
Stringnumber=jtNumber.getText();
if(name.equals("")||number.equals("")){
JOptionPane.showMessageDialog(null,"信息不完整!
");
}else{
alName.add(name);
alNumber.add(number);
jtName.setText("");
jtNumber.setText("");
}
}
}
privateclassDoneimplementsActionListener{
publicvoidactionPerformed(ActionEventarg0){
if(alName!
=null){
Filef=newFile("c:
\\test.txt");
if(!
f.exists()){
try{
f.createNewFile();
writeData();
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}else{
writeData();
}
}
}
}
publicvoidwriteData(){
try{
BufferedWriterbr=newBufferedWriter(newOutputStreamWriter(newFileOutputStream("c:
\\test.txt",true)));
for(inti=0;ibr.newLine();
br.write(alName.get(i)+","+alNumber.get(i));
br.newLine();
br.flush();
System.out.println(alName.get(i)+","+alNumber.get(i));
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
privateclassExitimplementsActionListener{
publicvoidactionPerformed(ActionEventarg0){
dispose();
}
}
publicstaticvoidmain(String[]args){
newPhoneNumber();
}
}