Filling an int array
Hi would anyone know how to fill an int array of size 20 with all random number between 0-19 and have no duplicates in the finished array.
Oh yeah i have code done but it doesnt want to work properly. ill show you.
public int randomNum(int x, int y) {
int a=Math.max(x, y);
int b=Math.min(x, y);
return (int)Math.floor(Math.random()*(a-b))+b;
* Checks the index list to see if it contains the random number
* @param num
* @param arr
* @return
public boolean hasNum(int num, int[]arr){
int n = num;
for(int i=0; i<arr.length;i++){
if(arr[i] == n)
return true;
return false;
* Return an integer [] for use as index positions
* @return
public int[] indexList(){
int[] list = new int[uArr.length];
for(int i=0;i<list.length;i++){
int r = randomNum(0,19);
while(!hasNum(r,list)){
list[i] = r;
r = randomNum(0,19);
System.out.println(""+list);
return list;
Similar Messages
-
Returning int array from C to Java as method parameter
Hello,
I've been trying to accomplish this
Java
int[] myArray = ... (filled with some data);
int retCode = myNativeCall(myArray);
if(retCode == 0)
doSomethingWith(myArray); //myArray gets overwritten with new data (with new size also) during the native call...
C
JNIEXPORT jint JNICALL Java_GenChav_rsaEncrypt(JNIEnv *env, jobject obj, jintArray myArray){
jintArray outbuf;
int[] new_array = .. // some function will fill this....
int new_array_length = ...//some function will give me the new size, not big, 512 max...
jint tmp[new_array_length]; //allocate..need something more ??
memcpy(tmp, new_array, new_array_lenght);
outbuf=(*env)->NewIntArray(env, new_array_length);
(*env)->SetIntArrayRegion(env, outbuf, 0, new_array_length, tmp);
myArray=outbuf;
I tought this way I would have a updated myArray ints on the Java program...
Any thought??user5945780 wrote:
Ok, let's try to be constructive here...
How I do implement a return type for my method like a int array ?First realized it has nothing to do with JNI. So the same question and answer applies to java only.
>
like:
int[] return = myNativeCall();
Yes.
Then I will look for return[0], if it is == to 0, fine, it means a successful calculation by the native code. Not sure what that means. The structure of what you return it up to you.
It can help when you are unsure of what to do in JNI....write a pseudo representation of what you want to do in a java method. Then translate that java method into JNI, everything in the pseudo method must be in the JNI code. -
I have too many books and not enough understanding on this subject.
I am trying to fill an object type array with values and am totally confused. In my application, I successfully create a constructor in one file and test the object with some values in another file. I have two objects for employee and would like to place the object values into an object array. There is plenty of information on int[] arrays, but little on object arrays.
After I can do the array fill:
I would like to provide object values with JOptionPane.
Change the print display to show all array elements
But one thing at a time.
I was thinking that objects exist first, then are loaded or filled into an object array. I seem to misunderstand as I am not performing the array fill very well. Following a book example seems to confuse me only more.
Thank you
//emp.java
import java.util.*;
public class Emp {
private int id;
private String name;
private double salary;
public Emp(int ident, String nm, double sal) {
id = ident;
name = nm;
salary = sal;
// method raise salary by 5 percent
double raise() { return salary * 1.05;} // ends raise method
// setters and getters
public String getName() { return(name); }
public double getSalary() { return(salary); }
public int getID() { return(id); }
public void setName(String nm) { name = nm; }
public void setSalary(double sal) { salary = sal; }
public void setID(int ident) { id = ident; }
}The test file
//EmpTest.java
import javax.swing.JOptionPane;
public class EmpTest {
public static void main(String[] args_) {
// Create object based on EmployeeTest2 class
// to add employee data to the array called empArray
Emp emp1 = new Emp(1,"Smith",2000);
Emp emp2 = new Emp(2,"Jones",2500);
//test and confirm the objects emp1 and emp2
int i;
String n;
double s;
double newsal;
// get the salary after the 5 percent raise
i = emp1.getID();
n = emp1.getName();
s = emp1.getSalary();
newsal = emp1.raise();
System.out.println("object Employee 1 ID: " + i + " Name: " + n + " Old Salary: " + s + " New salary: " + newsal);
i = emp2.getID();
n = emp2.getName();
s = emp2.getSalary();
newsal = emp2.raise();
System.out.println("object Employee 2 ID: " + i + " Name: " + n + " Old Salary: " + s + " New salary: " + newsal);
// get the number of employees with JOptionPane
String employeeCountString = JOptionPane.showInputDialog(
"Employee Database " +
"\nEnter the number of employees: ");
// convert into an integer empcount
int employeeCount = Integer.parseInt(employeeCountString);
// initialize the empArray.
Employee2[] empArray = new Employee2[employeeCount];
fill(empArray);
printContents(empArray);
} //end main method
private static void fill(Object[] my_arr) {
int i;
for (i = 0; i < my_arr.length; i = i + 1) {
// get the name from the keyboard
String employeeName = JOptionPane.showInputDialog(
"Enter the employee name: ");
// do something here to set the array element to employeeName
// get the salary
String employeeSalaryString = JOptionPane.showInputDialog(
"Enter the employee monthly salary: ");
//convert into a double
double employeeSalary = Double.parseDouble(employeeSalaryString);
//do something here to set array for salary
my_arr[i] = new Employee2(1,"S1",5); // temporary values here
} //ends for loop
} // ends method
private static void printContents(Object[] the_arr) {
int i;
for (i = 0; i < the_arr.length; i = i + 1) {
System.out.print("Element: " + i);
//System.out.println(" has the value : " + the_arr);
System.out.println(" has the value : " + i);
} //ends for loop
} // ends printContents method
} // ends EmpTest classwhat's the matter ?
Try this :
import javax.swing.JOptionPane;
public class EmpTest {
public static void main(String[] args_) {
// Create object based on EmployeeTest2 class
// to add employee data to the array called empArray
Emp emp1 = new Emp(1, "Smith", 2000);
Emp emp2 = new Emp(2, "Jones", 2500);
// test and confirm the objects emp1 and emp2
int i;
String n;
double s;
double newsal;
// get the salary after the 5 percent raise
i = emp1.getID();
n = emp1.getName();
s = emp1.getSalary();
newsal = emp1.raise();
System.out.println("object Employee 1 ID: " + i + " Name: " + n + " Old Salary: " + s + " New salary: "
+ newsal);
i = emp2.getID();
n = emp2.getName();
s = emp2.getSalary();
newsal = emp2.raise();
System.out.println("object Employee 2 ID: " + i + " Name: " + n + " Old Salary: " + s + " New salary: "
+ newsal);
// get the number of employees with JOptionPane
String employeeCountString = JOptionPane.showInputDialog("Employee Database "
+ "\nEnter the number of employees: ");
// convert into an integer empcount
int employeeCount = Integer.parseInt(employeeCountString);
// initialize the empArray.
Emp[] empArray = new Emp[employeeCount];
fill(empArray);
printContents(empArray);
} // end main method
private static void fill(Object[] my_arr) {
int i;
for (i = 0; i < my_arr.length; i = i + 1) {
// get the name from the keyboard
String employeeName = JOptionPane.showInputDialog("Enter the employee name: ");
// do something here to set the array element to employeeName
// get the salary
String employeeSalaryString = JOptionPane.showInputDialog("Enter the employee monthly salary: ");
// convert into a double
double employeeSalary = Double.parseDouble(employeeSalaryString);
// do something here to set array for salary
my_arr[i] = new Emp(1, employeeName, employeeSalary); // temporary values here
} // ends for loop
} // ends method
private static void printContents(Object[] the_arr) {
int i;
for (i = 0; i < the_arr.length; i++) {
System.out.print("Element # "+i+" Name= "+ ((Emp)the_arr).getName());
System.out.print("Salary # "+i+" Salary = "+ ((Emp)the_arr[i]).getSalary());
} // ends for loop
} // ends printContents method
} // ends EmpTest class -
Hey
i want to fill up an array with a deck of cards
i don't really know how to do it
here is some code that will clarify the situation
public class Game {
public void Game() {
public static void main(String[] args){
Kaart[] kaarten;
kaarten = new Kaart[53];
int teller=0;
public class Kaart {
private String color;
private String value;
public void kaart(String kleur, String waarde){
this.color=kleur;
this.value=waarde;
public void Kaart(){
public void setColor(String kleur){
this.color=kleur;
public String getColor(){
return color;
public void setValue(String waarde){
this.value=waarde;
public String getValue(){
return value;
public String toString(){
return value + color;
}Ok, there is some light at the end of the tunnel
the array is filled till the 13th card of hearts. but the rest is empty
any ideas
and
i know the method vulArray() can be way shorter
public class Game {
private Card[] deck;
public Game() {
deck = new Card[53];
public void vulArray() {
for (int i = 0; i < 53; i++) {
switch (i) {
case 0:
for (int j = 0; j < 13; j++) {
deck[j] = new Card("hearts", "" + j);
case 1:
for (int j = 0; j < 13; j++) {
int c = 14;
deck[c] = new Card("Club", "" + "" + j);
c++;
case 2:
for (int j = 0; j < 13; j++) {
int c = 27;
deck[c] = new Card("Diamond", "" + j);
c++;
case 3:
for (int j = 0; j < 13; j++) {
int c = 40;
deck[c] = new Card("spade", "" + j);
c++;
public void showDeck() {
for (int j = 0; j < deck.length; j++) {
System.out.println(deck[j].toString());
public static void main(String[] args) {
Game spel1 = new Game();
spel1.vulArray();
spel1.showDeck();
-
How do you invoke a method with native int array argument?
Hi,
Will someone help me to show me a few codes samples on how to invoke a method which has only one argument, an int [] array.
For exampe:
public void Method1(int [] intArray) {...};
Here is some simple code fragment I used:
Class<?> aClass = Class.forName("Test2");
Class[] argTypes = new Class[] {int[].class};
Method method = aClass.getDeclaredMethod("Method_1", argTypes);
int [] intArray = new int[] {111, 222, 333};
Object [] args = new Object[1];
args[0] = Array.newInstance(int.class, intArray);
method.invoke(aClass, args);I can compile without any error, but when runs, it died in the "invoke" statement with:
Exception in thread "main" java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at Test1.invoke_Method_1(Test1.java:262)
at Test1.start(Test1.java:33)
at Test1.main(Test1.java:12)
Any help is greatly appreciated!
JeffSorry, my bad. I was able to invoke static methods and instance methods with all data types except native int, short, double and float, not sure the proper ways to declare them.
After many frustrating hours, I posted the message for help, but at that time, my mind was so numb that I created a faulted example because I cut and pasted the static method invocation example to test the instance method passing int array argument.
As your post suggested, "args[0] = intArray;", that works. Thanks!
You know, I did tried passing the argument like that first, but because I was not declaring the type properly, I ended up messing up the actual passing as well as the instantiation step.
I will honestly slap my hand three times.
jml -
The project I was assigned is to write a program that takes numbers from a text file (all on one line, separated by spaces) and store them into a 5-element array. The program is supposed to check and see if the array is big enough to hold all the numbers from the text file, and if it isn't, it is supposed to double that array size. I've written the following code and it compiles, but it will not run due to this error:
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at ArrayReader.main(ArrayReader.java:16)
----jGRASP wedge2: exit code for process is 1.
----jGRASP: operation complete.
This is what I have so far. If anyone could help me or point out anything I missed it would be greatly greatly appreciated.
import java.io.*;
public class ArrayReader
public static void main(String[] args)
File file = new File("numberlist.txt");
FileInputStream fis = null;
BufferedReader br = new BufferedReader (new InputStreamReader(fis));
int i = 5;
int x = 0;
int[] array;
array = new int;
try
fis = new FileInputStream(file);
for (x = 0; x < array.length; x++)
if (x > array.length)
i = i*2;
System.out.println("Array too small. Doubling size to: " + i);
else
array[i] = fis.read();
catch(FileNotFoundException e)
System.out.println("File " + file.getAbsolutePath() +
" could not be found on filesystem");
catch(IOException ioe)
System.out.println("Exception while reading the file" + ioe);
for (i = 0; i < array.length; i++)
System.out.println(array[i]);ursusmajx wrote:
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at ArrayReader.main(ArrayReader.java:16)Start by looking at line 16 in ArrayReader.main. It's not lie 16 in the code you posted here, so either you haven't posted the code you tried to run or you're not running the code you think you are.
I do see where you are using fis before assigning it a value.
db -
How to pass int array as an IN parameter to PLSQL Procedure
Hi,
How to pass int array in java to a stored procedure througn jdbc
and what type of data type I should declare to this IN parameter
in PLSQL Procedure.
Thanks,
SimiHi,
The best way to do what you want depends on what you want. Start by describing what you need to do. It's best to post some sample data (CREATE TABLE and INSERT statments) and what results you want from that sample data. (See the forum FAQ: https://forums.oracle.com/message/9362002)
If you have ideas about how to do the job (e.g., populating a temporary table) it can be helpful to include those, too, but distinguish clearly between WHAT you need to do and HOW you might do it.
As Bencol suggested, a SYS_REFCURSOR might be the best way to pass back the results.
Since you didn't post your table, or even describe what you wanted to do with it, I'll illustrate using scott.emp, which is probably on your system.
Say you wanted a procedure that took a DATE as an argument, and returned a some designated columns (empno, ename and hiredate in the example below) for all employees hired on or after the given DATE. You might write a procedure like this:
CREATE OR REPLACE PROCEDURE hired_since
( start_date IN DATE
, out_data OUT SYS_REFCURSOR
AS
BEGIN
OPEN out_data FOR
SELECT empno, ename, hiredate
FROM scott.emp
WHERE hiredate >= start_date;
END hired_since;
SHOW ERRORS
You can test it in SQL*Plus like this:
VARIABLE c REFCURSOR
EXEC hired_since (DATE '1982-01-01', :c);
PRINT :c
The output I got from this test was:
EMPNO ENAME HIREDATE
7788 SCOTT 19-APR-87
7876 ADAMS 23-MAY-87
7934 MILLER 23-JAN-82 -
Problem with reading numbers from file into double int array...
Okay, this is a snippet of my code:
public void readMap(String file){
try {
URL url = getClass().getResource(file);
System.out.println(url.getPath());
BufferedReader in = new BufferedReader(new FileReader(url.getPath()));
String str;
String[] temp;
int j=0;
while ((str = in.readLine()) != null) {
temp = str.split(",");
for(int i=0;i<temp.length;i++){
map[j] = java.lang.Integer.parseInt(temp[i]);
j++
in.close();
} catch (IOException e) {
System.out.println("Error: "+ e.toString());
map[][] is a double int array. Now, the code is running through each line of the text file (with each line looking like this: 0,3,6,2,2,3,1,5,2,3,5,2), and I want to put the numbers into a corresponding double int array (which is where map[][] comes in). Now, this code WOULD work, except I need to set the sizes of each array before I start adding, but I don't know how to get the exact sizes.. how can I get around this issue?
Message was edited by:
maxfarrarYou can do a two-dimensional ArrayList? That syntax
you wrote didn't work.
I tried doing:
private ArrayList<ArrayList><Integer>> map;
Your syntax is just wrong -- or, this forum software has bug in handling angle brackets.
ArrayList<ArrayList<Integer>>...The closing angle bracket after the second 'ArrayList' is the one generated by the bug. Basically, it should be T<T<T2>> without spaces. Oh, for that matter:
Arraylist<ArrayList<Integer>> -
How to conver vector to Int array
Hi
I know toArray method can be used to convert vector to an array but what if I want to convert it to an int array?
Vector v = new Vector();
int r [] = new int [1];
v.add(2);
r = v.toArray()//gives errorHow can I cast it to return int Array rather than object array?Vector v = new Vector(10);
for(int i = 0; i < 10; i++) {
v.add(i);
int r[] = new int[v.size()];
for(int i = 0; i < r.length; i++) {
String value = v.elementAt(i).toString();
r[i] = Integer.valueOf( value ).intValue();
System.out.println(r); -
Saving int [][][][] array to a file
Hello...
I realize that I can save the array to a file by saving each bit of information separately, and then recalling it...
I was curious whether it is possible to save an int[][][][] array to a file "as it is". that is, some way of just exporting the array to a file and then recalling it. if it is not possible, saying so is also helpful.
Thanks.yes... well... i didn't necessarily mean a 4D array was common. i meant it would seem a common desire to store any array, even 1d, or an ArrayList, or anything really... other than being able to write JUST at int, or just a String, or just a double. see... it can take about 10 minutes to create this 4d array; so i can save that time by just recalling it from a file in about 2 seconds... would have figured this wasn't too uncommon of a desire... though not common enough probably.
-
How to convert an int array to string array?
Hi,
Can anyone please help me with this question?
int number={4,6,45,3,2,77};
I like to convert this into a list and sort
List mylist = Arrays.asList(number);
Collections.sort(mylist);
But first I need to convert the int array to String array.
Please advise. Thanks.If you want to convert your int array to a String array, you have no choice but doing a conversion element by element in a for loop.
However, if the sort method doesn't behave as desired, you can use the one with 2 parameters, the second parameter being a comparator class.
Check the javadoc for more information : http://java.sun.com/j2se/1.3/docs/api/java/util/Collections.html
/Stephane -
Reading content of a file into an int array
How do i use FileReader rd = new FileReader(filename) to read the contents into an int array?
public static int[] parse_file(String filename)
Vector vec = new Vector();
int num[];
num = new num[vec.size()];
try {
BufferedReader br = new BufferedReader(new FileReader(filename));
String line;
while((line = br.readLine()) != null) {
vec.add(line);
for (int i = 0; i < vec.size(); i++) {
num[i] = (int) vec.get(i);
System.out.println("Number=" + num);
catch(IOException e) {
System.out.println("error");
return num;
Maxsum.java:22: cannot resolve symbol
symbol : class num
location: class Maxsum
num = new num[vec.size()];
^
Maxsum.java:30: inconvertible types
found : java.lang.Object
required: int
num[i] = (int) vec.get(i);
How do i initialize the array?if i do not initialize it, there'll be array not initialized error also..How do i convert the String to int? -
Better way to sort multi dim int array
I'm tracking key value pairs of ints. I know that the keys will not repeat. I've decided to do this in an int[][] array
int[][] data = new int[2][many millions]This app crunches a lot of data so I'm shooting for the best memory handling. I push a bunch of key - value pairs into the array. I will likely populate many if not all data and not have to search until I'm done populating so I'm not sorting as I go.
I know that I can sort the single dim array data[0] but how can I keep the values array data[1] synchronized? I've tried a few things, all have been successful but I'm wondering if there's a better method. Currently I create copy arrays for the keys and values, sort the original keys, and loop through the copy keys. For each copy key I binary search the sorted keys and drop the value in the correct spot. I don't like having to allocate 2X the amount of memory for the swap arrays. Any thoughts?
Thanks
STJos, thanks for the reply. I tried this method but I don't get as much
storage since each internal array counts as an object.Yes I know; maybe I've got something for you, waidaminnit <dig-dig/>
<shuffle-shuffle/> Ah, got it. Suppose you wrap your two dim array in
a simple class that implements this interface:public interface Sortable {
public int length();
public int compare(int i, int j);
public void swap(int i, int j);
}I think the semantics of the methods are obvious. Given this interface
you can sort anything you like using this thingy:public class HeapSort {
private Sortable s;
private void heapify(int i, int n) {
for (int r, l= (i<<1)+1; l < n; i= l, l= (i<<1)+1) {
if ((r= l+1) < n && s.compare(l, r) < 0) l= r;
if (s.compare(i, l) < 0) s.swap(i, l);
private void phase1() {
for (int n= s.length(), i= n/2; i >= 0; i--)
heapify(i, n);
private void phase2() {
for (int n= s.length(); --n > 0; ) {
s.swap(0, n);
heapify(0, n);
public HeapSort(Sortable s) { this.s= s; }
public Sortable sort() {
phase1();
phase2();
return s;
}kind regards,
Jos -
Hi All,
i want to find out the max.value,the next max.value and so on and so forth..
for example :
int iArr[] = {5,3,7};
first i have to find out 7,then 5 and and 3..
how to proceed?
ThanksHi "mkreddy123",
If I understand you correctly, you want to sort an 'int' array in descending order.
If this is correct, then I suggest using the "sort()" method in class "java.util.Arrays".
I didn't see any mention (in your post) of the java version you are using, so I will assume you are using the latest version (1.4). Here is a link to the relevant javadoc:
http://java.sun.com/j2se/1.4.1/docs/api/java/util/Arrays.html
Of-course that sorts the array in ascending order. You then need to "reverse" the array in order to get descending order.
[I'm assuming you _do_ know how to reverse an array -- in other words, make the last element in the array, the first element; make the second last element in the array the second element; and so on.]
Hope this helps.
Good Luck,
Avi. -
Question concerning LinkedList of int arrays
This is probably a stupid question, but...
The following section of code is intended to examine the vertices of a graph, set the value of nMatrix[j][k] to 0 whenever there is no edge connecting vertices j and k, and place an int array {j,k} into a LinkedList setN whenever an edge does connect vertices j and k.
/*g is the graph, getV() returns the array of vertices*/
int[][] nMatrix = new int[g.getV().length][g.getV().length];
/*set N*/ LinkedList setN = new LinkedList();
for (int j = 0; j < g.getV().length; j++) {
for (int k = 0; k < g.getV().length; k++) {
if (g.getV()[j].hasNeighbor(g.getV()[k]))
/*place the n_jk in set N*/
setN.add(new int[] {j,k});
else nMatrix[j][k] = 0;
}The code does what it's supposed to do as far as I can tell, but my question is: How do I retrieve the arrays in setN as int[]'s rather than instances of the Object class? For a moment I thought I could use
Integer[] n = (Integer[])setN.get(index);to retrieve the array, but that returned a run-time error. Can anyone out there provide some input?I can now retrieve arrays from my LinkedList without any problems, but when I try to find an array within that LinkedList using the indexOf() method, it always returns -1.
My code:
static boolean solvable (Graph g) {
Vertex[] v = g.getV();
int[] c = g.getC();
int[] d = g.getD();
int c_sum = sum(c);
int d_sum = sum(d);
/* snip */
LinkedList setN = new LinkedList();
//here's where I add arrays to set N
for (int h = 0; h < v.length; h++) {
for (int j = 0; j < v.length; j++) {
if (v[h].hasNeighbor(v[j])) {
setN.add(new int[] {h,j});
/*each array of size 2 in setN corresponds to a certain int value; this array contains those values*/
int[] setN_vals = new int[setN.size()];
for (int j = 0; j < setN_vals.length; j++) {
setN_vals[j] = 0;
/*snip*/
//This next function takes the LinkedList setN as an argument. It is called within the body of solvable().
static boolean Watsons(int k, int m, LinkedList setN, int[] vals, int cmd) {
int total = 0;
for (int l = 0; l < m; l++) {
int n_index = setN.indexOf(/*(Object)*/new int[] {k,l}); /*this always returns -1, even if the array {k,l} had earlier been placed in setN*/
if (n_index > -1)
total += 2 * vals[n_index];
/* snip */
}I've tried it with and without the (Object) coercion tag, but it doesn't seem to be able to find the array either way.
Maybe you are looking for
-
How do I save a PDF, when viewing in Preview, to a folder in my Documents?
Right now, when I download a PDF from the internet and view it in Preview, I can't figure out how to save it directly to a folder in my Documents. I have been going into the Downloads folder and copy/paste the PDF into the desired folder in my Docum
-
Flash game scrolling background
I am creating a flash game where the character stays in the centre of the screen and the background image scrolls past as keys are pressed. The scrolling works fine, and the background image won't scroll of the screen to the left or the right. It is
-
Cant use screen mirroring wirelessly since yesterday
I got home today and i cannot get my HP laptop to connect to my samsung smart tv anymore.. I have only had this laptop for about two weeks but it has worked flawlessly since puchased and connected without any issues. I use this feature to stream mo
-
MobileMe and IDLE-comands in Mac OS X Mail
Hello, there is a bug in Mac OS X Mail: If I go in "preferences", choose "Accounts", choose my MobileMe-Account, choose "extended" and activate the option "Use the IDLE-command if the server supports it" there will not be any more a acoustic signal f
-
The "Facetime for Mac" daemon is consistently waking up my iMac
My iMac has often had issues with staying asleep (often "Better Touch Tool" or a Google Chrome event would wake it up in the middle of the night). Lately though, it's consistently awoken by the apsd-ft process a couple of hours after being put to sle