|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On February 16 2015 03:57 Blitzkrieg0 wrote:If you're going to put them in an arraylist the smart way to do it would just be a for loop. ArrayList myList = new ArrayList<MyObject>(); for (int i = 0; i < 100 ; i++) { myList[i] = new MyObject(); if (i % 2 == 0) myList[i].setX(); } I don't need to name them all something since I'm going to be accessing them from the list structure and never use the name anyway.
Well, if I do this, sure I am storing a ton of new objects, but X will have the value of 5 in all of them. I want X to already be set to 10 in many of them.
|
On February 16 2015 04:06 travis wrote:Show nested quote +On February 16 2015 03:57 Blitzkrieg0 wrote:If you're going to put them in an arraylist the smart way to do it would just be a for loop. ArrayList myList = new ArrayList<MyObject>(); for (int i = 0; i < 100 ; i++) { myList[i] = new MyObject(); if (i % 2 == 0) myList[i].setX(); } I don't need to name them all something since I'm going to be accessing them from the list structure and never use the name anyway. Well, if I do this, sure I am storing a ton of new objects, but X will have the value of 5 in all of them. I want X to already be set to 10 in many of them.
That is what the if i%2 does. It'll change every other one to 10. You can change the logic of the IF statement to do something else.
|
On February 16 2015 03:59 goody153 wrote: Any linux guru/user here ?
What are the best linux server OS that i should use if i am going to utilize lamp lamp ?
It depends on what you need. Debian is usually the go-to distro for the servers due to its stability and security (you get slightly older packages but you get guaranteed stability and security for that, if you want bleeding edge you'd have to sacrifice that). Another alternative would be CentOS.
http://stackoverflow.com/questions/62222/centos-or-debian-as-a-server-os
Personally, I'd go with Debian + LEMP stack to get better performance, great stability, security and tons of easy-to-find help on the web. I find working with Nginx a lot easier than Apache and you get much better performance from that too. Unless you really, really need Apache to run some scripts in the back-end, then you can go with both Nginx and Apache - Nginx working as a reverse proxy for the Apache.
|
oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this.
|
On February 16 2015 03:59 goody153 wrote: Any linux guru/user here ?
What are the best linux server OS that i should use if i am going to utilize lamp lamp ?
That is like asking whether the protestant, catholic or muslim religion is better. Most linux distributions work in server environment with often only tiny differences. I prefer CentOS, at work we use some Debian spin-off, ...
The main differences are yum vs apt and some differences in file system layout, e.g. Debian has the Apache HTTPD config in /etc/apache2, CentOS in /etc/httpd and other small stuff. Pick whichever you are more familiar with, because it doesn't actually really matter (but CentOS is better ).
|
On February 16 2015 04:20 travis wrote: oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this. I don't understand. The object you create and then work on to change it, you have a variable in your code to access it, say "myObject". Wouldn't "myList[i] = myObject" work? What breaks in Java if you do that?
|
On February 16 2015 05:43 Ropid wrote:Show nested quote +On February 16 2015 04:20 travis wrote: oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this. I don't understand. The object you create and then work on to change it, you have a variable in your code to access it, say "myObject". Wouldn't "myList[i] = myObject" work? What breaks in Java if you do that?
it's because i need it to references different objects for each arraylist position, not the same one. i want each position to have a unique object
|
On February 16 2015 06:06 travis wrote:Show nested quote +On February 16 2015 05:43 Ropid wrote:On February 16 2015 04:20 travis wrote: oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this. I don't understand. The object you create and then work on to change it, you have a variable in your code to access it, say "myObject". Wouldn't "myList[i] = myObject" work? What breaks in Java if you do that? it's because i need it to references different objects for each arraylist position, not the same one. i want each position to have a unique object Yes, that's what I don't understand. When you do something like this:
myObject = new Whatever(); myObject.setSomeAttribute(...); myList[counter] = myObject;
And then you repeat that a bunch of times.
Why would that lead to a problem in Java? Shouldn't it be all different objects?
|
nope, because myList saves a reference to the object, not the object's values.
So myList[0] would point to myObject, myList[1] would point to myObject, myList[3] would point to myObject, etc.
then if myObjects values change, it will say the new values regardless of which myList you call.
Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least.
|
On February 16 2015 06:52 Ropid wrote:Show nested quote +On February 16 2015 06:06 travis wrote:On February 16 2015 05:43 Ropid wrote:On February 16 2015 04:20 travis wrote: oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this. I don't understand. The object you create and then work on to change it, you have a variable in your code to access it, say "myObject". Wouldn't "myList[i] = myObject" work? What breaks in Java if you do that? it's because i need it to references different objects for each arraylist position, not the same one. i want each position to have a unique object Yes, that's what I don't understand. When you do something like this: myObject = new Whatever(); myObject.setSomeAttribute(...); myList[counter] = myObject; And then you repeat that a bunch of times. Why would that lead to a problem in Java? Shouldn't it be all different objects?
If you're putting it straight into a list there is no point in not just doing myList[counter] = new Whatever();
If you need to set something it should be done as a parameter to the constructor.
On February 16 2015 06:57 travis wrote: Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least.
Your original code creates two references to the same object. The first one is the myObject reference and the second is the one in the list. Chances are you're going to go out of scope right after this which will set the first reference for garbage collection, but creating it in the first place is a waste of memory. I'm not sure what you mean by actual reference. Arrays always hold references in Java (unless it's an array of primitives).
|
I'm restructuring the code bases for some of my side projects (moving things into folders, shuffling some projects), and it's awesome how much crappy code i can find now that i'm looking for it. so sad, yet so good.
|
On February 16 2015 08:01 Blisse wrote: I'm restructuring the code bases for some of my side projects (moving things into folders, shuffling some projects), and it's awesome how much crappy code i can find now that i'm looking for it. so sad, yet so good.
Boyscout method FTW!
|
On February 16 2015 06:57 travis wrote: nope, because myList saves a reference to the object, not the object's values.
So myList[0] would point to myObject, myList[1] would point to myObject, myList[3] would point to myObject, etc.
then if myObjects values change, it will say the new values regardless of which myList you call.
Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least. You can just do myList [counter] = new whatever.
The arrayList will hold a reference to a different object at each position.
|
On February 16 2015 07:17 Blitzkrieg0 wrote:Show nested quote +On February 16 2015 06:52 Ropid wrote:On February 16 2015 06:06 travis wrote:On February 16 2015 05:43 Ropid wrote:On February 16 2015 04:20 travis wrote: oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this. I don't understand. The object you create and then work on to change it, you have a variable in your code to access it, say "myObject". Wouldn't "myList[i] = myObject" work? What breaks in Java if you do that? it's because i need it to references different objects for each arraylist position, not the same one. i want each position to have a unique object Yes, that's what I don't understand. When you do something like this: myObject = new Whatever(); myObject.setSomeAttribute(...); myList[counter] = myObject; And then you repeat that a bunch of times. Why would that lead to a problem in Java? Shouldn't it be all different objects? If you're putting it straight into a list there is no point in not just doing myList[counter] = new Whatever(); If you need to set something it should be done as a parameter to the constructor. Show nested quote +On February 16 2015 06:57 travis wrote: Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least. Your original code creates two references to the same object. The first one is the myObject reference and the second is the one in the list. Chances are you're going to go out of scope right after this which will set the first reference for garbage collection, but creating it in the first place is a waste of memory. I'm not sure what you mean by actual reference. Arrays always hold references in Java (unless it's an array of primitives).
I don't really know how to say it, but the difference with your method is that it seems like it creates a new "unique" object each time. Instead of making an object and then putting it's reference into the arraylist, you make the arraylist the reference. is that right? it's what it looks like.
On February 16 2015 08:56 solidbebe wrote:
You can just do myList [counter] = new whatever.
The arrayList will hold a reference to a different object at each position.
yeah this is what blitzkrieg is saying right?
|
On February 16 2015 06:57 travis wrote: nope, because myList saves a reference to the object, not the object's values.
So myList[0] would point to myObject, myList[1] would point to myObject, myList[3] would point to myObject, etc.
then if myObjects values change, it will say the new values regardless of which myList you call.
Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least. It's true that things point to the same, actual object somewhere in memory. The thing is, when you repeat your actions, and there's the "myObject = new Whatever()" line, at that point, myObject will point to a new, different object. When you then do myObject.setSomeAttribute(12) etc., this will not change what you've originally saved in myList[...] somewhere. That's how I thought Java works here.
|
On February 16 2015 08:59 travis wrote:Show nested quote +On February 16 2015 07:17 Blitzkrieg0 wrote:On February 16 2015 06:52 Ropid wrote:On February 16 2015 06:06 travis wrote:On February 16 2015 05:43 Ropid wrote:On February 16 2015 04:20 travis wrote: oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this. I don't understand. The object you create and then work on to change it, you have a variable in your code to access it, say "myObject". Wouldn't "myList[i] = myObject" work? What breaks in Java if you do that? it's because i need it to references different objects for each arraylist position, not the same one. i want each position to have a unique object Yes, that's what I don't understand. When you do something like this: myObject = new Whatever(); myObject.setSomeAttribute(...); myList[counter] = myObject; And then you repeat that a bunch of times. Why would that lead to a problem in Java? Shouldn't it be all different objects? If you're putting it straight into a list there is no point in not just doing myList[counter] = new Whatever(); If you need to set something it should be done as a parameter to the constructor. On February 16 2015 06:57 travis wrote: Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least. Your original code creates two references to the same object. The first one is the myObject reference and the second is the one in the list. Chances are you're going to go out of scope right after this which will set the first reference for garbage collection, but creating it in the first place is a waste of memory. I'm not sure what you mean by actual reference. Arrays always hold references in Java (unless it's an array of primitives). I don't really know how to say it, but the difference with your method is that it seems like it creates a new "unique" object each time. Instead of making an object and then putting it's reference into the arraylist, you make the arraylist the reference. is that right? it's what it looks like. Those two things are essentially the same. The assignment still stores the reference of the new object at the array index. Which is the same as putting a reference into the arrayList. The difference is only in at what moment the object is created.
|
On February 16 2015 06:06 travis wrote:Show nested quote +On February 16 2015 05:43 Ropid wrote:On February 16 2015 04:20 travis wrote: oh, i didn't really read everything you posted because I knew this solution wouldn't work for my situation. I get it though and that's pretty elegant. technically I am sure I could make this method of modifying the objects after I have put them in the arraylist work but I would have to redesign almost my whole program. in my actual program I am picking and choosing many variables through different methods before I know if I actually want to store it in an array or not.
oh well you live you learn. I'd just post my code but I don't want you guys to have to wade through it.
I think I have figured out a clumsy way to fix what I have done, but I will definitely have to keep what I have learned in mind for next time I try to do something like this. I don't understand. The object you create and then work on to change it, you have a variable in your code to access it, say "myObject". Wouldn't "myList = myObject" work? What breaks in Java if you do that? it's because i need it to references different objects for each arraylist position, not the same one. i want each position to have a unique object This is exactly what Blitzkrieg's code does:
ArrayList myList = new ArrayList<MyObject>(); for (int i = 0; i < 100 ; i++) { myList[i] = new MyObject(); }
The myList ArrayList now contains 100 references to [i]different objects.
|
On February 16 2015 06:57 travis wrote: nope, because myList saves a reference to the object, not the object's values.
So myList[0] would point to myObject, myList[1] would point to myObject, myList[3] would point to myObject, etc.
then if myObjects values change, it will say the new values regardless of which myList you call.
Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least.
That's actually false, and not how java works. You should listen to Ropid. While that way may be confusing, it would not set all the objects to the same thing.
Java does not pass by reference, it passes by value..the value of the reference. So when you do myObject = new Whatever(); .. the value of the reference to your new object is stored in myObject. And then, when you assign it to the array, the value of the reference is the put in the array. When you hit another new Whatever(), the value of that reference is now stored in the variable. It is not reassigning references.
|
On February 16 2015 04:15 Manit0u wrote:Show nested quote +On February 16 2015 03:59 goody153 wrote: Any linux guru/user here ?
What are the best linux server OS that i should use if i am going to utilize lamp lamp ? It depends on what you need. Debian is usually the go-to distro for the servers due to its stability and security (you get slightly older packages but you get guaranteed stability and security for that, if you want bleeding edge you'd have to sacrifice that). Another alternative would be CentOS. http://stackoverflow.com/questions/62222/centos-or-debian-as-a-server-osPersonally, I'd go with Debian + LEMP stack to get better performance, great stability, security and tons of easy-to-find help on the web. I find working with Nginx a lot easier than Apache and you get much better performance from that too. Unless you really, really need Apache to run some scripts in the back-end, then you can go with both Nginx and Apache - Nginx working as a reverse proxy for the Apache.
On February 16 2015 05:17 Morfildur wrote:Show nested quote +On February 16 2015 03:59 goody153 wrote: Any linux guru/user here ?
What are the best linux server OS that i should use if i am going to utilize lamp lamp ? That is like asking whether the protestant, catholic or muslim religion is better. Most linux distributions work in server environment with often only tiny differences. I prefer CentOS, at work we use some Debian spin-off, ... The main differences are yum vs apt and some differences in file system layout, e.g. Debian has the Apache HTTPD config in /etc/apache2, CentOS in /etc/httpd and other small stuff. Pick whichever you are more familiar with, because it doesn't actually really matter (but CentOS is better  ).
I should have mentioned that i was actually looking for other options outside CentOS .. Any other network OS where LAMP works ? thanks for the answers guys
|
On February 16 2015 11:44 berated- wrote:Show nested quote +On February 16 2015 06:57 travis wrote: nope, because myList saves a reference to the object, not the object's values.
So myList[0] would point to myObject, myList[1] would point to myObject, myList[3] would point to myObject, etc.
then if myObjects values change, it will say the new values regardless of which myList you call.
Blitzkrieg's solution was to just make myList[counter] = new myObject, which I am assuming makes the position in the arraylist the actual reference, instead of making the position in the arraylist hold a reference. that's what I think is happening there, at least. That's actually false, and not how java works. You should listen to Ropid. While that way may be confusing, it would not set all the objects to the same thing.
okay I think I get it now and I think I see what I did wrong.
|
|
|
|