Java 使用JButton actionperformed类如何将元素从一个arraylist添加到另一个arraylist?
我有一个返回arraylist的方法,我通过buttonListener调用它。我需要能够将生成的每个arraylist存储在另一个arraylist中。我该怎么做?每次我尝试时,它都会复制我用来跟踪推送结果的arraylist中的现有元素Java 使用JButton actionperformed类如何将元素从一个arraylist添加到另一个arraylist?,java,swing,jbutton,Java,Swing,Jbutton,我有一个返回arraylist的方法,我通过buttonListener调用它。我需要能够将生成的每个arraylist存储在另一个arraylist中。我该怎么做?每次我尝试时,它都会复制我用来跟踪推送结果的arraylist中的现有元素 private class ButtonListener implements ActionListener{ public void actionPerformed (ActionEvent e){ numCounter++; Strin
private class ButtonListener implements ActionListener{
public void actionPerformed (ActionEvent e){
numCounter++;
String reqVal1 = requestor.getText();
int reqVal = Integer.parseInt(reqVal1);
request = reqVal;
requestsArray.get(3).set(0,0);
if(numCounter == 1){//---------------------------numCounter == 1 beginning-------- -------------------------
workingVar = memSize/2;
if(request>workingVar){
requestsArray.get(3).set(0,1);
}
else{
reqCounter++;
while (workingVar>=request){
workingVar = workingVar/2;
holes2.add(workingVar);
}
if(workingVar<request){
workingVar=workingVar*2;
holes2.add(workingVar);
holes2.remove(holes2.size()-2);
holes2.remove(holes2.size()-1);
}
}
e1=workingVar;
}//-----------------------------------------------end of numCounter == 1 section-------------------------------------
if(numCounter > 1){
for (int y = 0; y<requestsArray.get(0).size();y++){
if(requestsArray.get(1).get(y).equals("H")){
holes.add((Integer)requestsArray.get(0).get(y));
}
}
//BubbleSort of holes ArrayList
int in, out;
for(out= holes.size()-1; out>0;out--)
for(in =0; in<out;in++)
if(holes.get(in)<holes.get(in+1)){
int temp1 = holes.get(in+1);
int temp2 = holes.get(in);
holes.set(in, temp1);
holes.set(in+1, temp2);
}
//calculates the value of e1 using holes array
if(holes.isEmpty()){
requestsArray.get(3).set(0, 1);
}
else{
for(element=holes.size()-1;element>-1;element--){//starts at end of holes array loops backwards
e1 = holes.get(element); //assigns value of each element to e1
if(e1>=request) //if value e1 is greater than request stop looping
break;
}
workingVar=e1; //assign the value of e1 to workingVar
if (request>e1){
requestsArray.get(3).set(0, 1);
}
else{
//---------------------code for populating holes2 array---------------------------
reqCounter++;
if(workingVar!=request && workingVar/2>=request){
while (workingVar/2>=request){
workingVar = workingVar/2;
holes2.add(workingVar);
}
if(workingVar<request){
workingVar=workingVar*2;
holes2.add(workingVar);
}
}
}
}
}
//Sort of Holes2 ArrayList - reorder's holes2 for initial set up and subsequent inserts
int in, out;
for(out= holes2.size()-1; out>0;out--)
for(in =0; in<out;in++)
if(holes2.get(in)>holes2.get(in+1)){
int temp1 = holes2.get(in+1);
int temp2 = holes2.get(in);
holes2.set(in, temp1);
holes2.set(in+1, temp2);
}
//-------------------------------requestsArray Setups----------------------------------------------------
//Initial setup of requestsArray
if(numCounter == 1){
if(requestsArray.get(3).get(0).equals(0)){
requestsArray.get(0).set(0,e1);
requestsArray.get(1).set(0,"R");
requestsArray.get(2).set(0, reqCounter);;
for(int i = 0; i<holes2.size();i++){
requestsArray.get(0).add(holes2.get(i));
requestsArray.get(1).add("H");
requestsArray.get(2).add(0);
}
}
else{
requestsArray.get(0).set(0,e1);
requestsArray.get(1).set(0, "H");
requestsArray.get(2).set(0,0);
}
}
//Subsequent setup of requestsArray
int element2;
if(numCounter >1 && requestsArray.get(3).get(0).equals(0)){
for(element2 = 0; element2< requestsArray.get(0).size(); element2++){
if((Integer)requestsArray.get(0).get(element2)==e1 &&requestsArray.get(1).get(element2).equals("H") ){
break;
}
}
if(holes2.isEmpty()){
requestsArray.get(1).set(element2, "R");
requestsArray.get(2).set(element2, reqCounter);
}
else{ //holes2 is not empty
requestsArray.get(0).add(element2, workingVar);
requestsArray.get(2).add(element2,reqCounter);
requestsArray.get(1).add(element2, "R");
requestsArray.get(0).remove(element2+1);
requestsArray.get(2).remove(element2+1);
requestsArray.get(1).remove(element2+1);
for(int i = 1; i<holes2.size()+1;i++){
requestsArray.get(0).add(element2+i,holes2.get(i-1));
requestsArray.get(1).add(element2+i,"H");
requestsArray.get(2).add(element2+i,0);
}
}
}
//-----------------End Section for populating requestsArraywhen numCounter > 1---------------------------
//remove all values from holes1 and holes2
holes.clear();
holes2.clear();
System.out.println(results1);
私有类ButtonListener实现ActionListener{
已执行的公共无效操作(操作事件e){
numCounter++;
String reqVal1=requestor.getText();
int reqVal=Integer.parseInt(reqVal1);
请求=请求值;
requestsArray.get(3.set)(0,0);
如果(numCounter==1){/------------------------------------numCounter==1开始---------------------------------
workingVar=memSize/2;
如果(请求>工作变量){
requestsArray.get(3.set)(0,1);
}
否则{
reqCounter++;
while(workingVar>=请求){
workingVar=workingVar/2;
孔2.添加(工作变量);
}
if(工作变量1){
对于(int y=0;y0;out--)
for(in=0;in=request)//如果值e1大于请求,则停止循环
打破
}
workingVar=e1;//将e1的值分配给workingVar
如果(请求>e1){
requestsArray.get(3.set)(0,1);
}
否则{
//---------------------填充holes2数组的代码---------------------------
reqCounter++;
if(workingVar!=请求&&workingVar/2>=请求){
while(workingVar/2>=请求){
workingVar=workingVar/2;
孔2.添加(工作变量);
}
如果(workingVar我会考虑至少两种解决方案
创建一个持续时间长的列表
(全局变量或类似的,取决于您的需要),并使用List.addAll()
方法
创建一个Map您必须提供代码的关键部分,这样我们才能看到实际发生的情况。发布一个示例,说明您所做的工作以及您面临的困难,这样更容易帮助您,或者更快地获得更好的帮助,发布一个.added results1作为全局变量和results1.addAll(requestsArray);但是results1数组中的所有元素都被最近添加的元素复制了。@user1888433如果你想让我们帮助你,你必须按照我们说的做。Andrew告诉你要发布,所以请按我们说的做。我真的不知道你的代码是做什么的…添加了更简单的示例。希望这有帮助。我真的因为某些原因而在这里挣扎。谢谢!!
public class mainClass{
public static void main(String[] args){
JFrame frame1 = new JFrame("testButton");
frame1.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
buttonExample b1 = new buttonExample();
frame1.getContentPane().add(b1);
frame1.pack();
frame1.setVisible(true);
}
}
public class Example {
private int rand1;
private ArrayList<ArrayList> count;
private ArrayList<Integer> count2;
private Random rnd;
private int counter1;
private ArrayList<ArrayList>count3;
public Example(){
count = new ArrayList<ArrayList>();
count2 = new ArrayList<Integer>();
rnd = new Random();
count3 = new ArrayList<ArrayList>();
}
private void addCount2(){
for(int x = 0; x<6;x++){
rand1 = rnd.nextInt(6)+1;
count2.add(rand1);// count2 == Integers
}
}
public void addCount(){
addCount2();
count.add(count2);// count == count3
}
public ArrayList<ArrayList> displayCount(){
return count;
}
}
public class buttonExample extends JPanel {
private JButton button1;
private Example example1;
public buttonExample(){
button1 = new JButton("Submit");
add(button1);
button1.addActionListener(new ButtonListener());
example1 = new Example();
}
private class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
example1.addCount();
System.out.println(example1.displayCount().get(0));;
}
}
}